R语言笔记—⒍R语言IO操作:输入与输出

本文详细介绍了如何在R语言中从键盘、文本文件、Excel、数据库、剪贴板等多种来源导入数据,包括read.table、read.csv等函数的使用,以及文本输出、Rdata文件的保存与加载等操作。
摘要由CSDN通过智能技术生成

R语言的输入

R语言可从键盘、文本文件、Microsoft Excel和Assess、流行的统计软件、特殊格式的文件,以及多种关系型数据库中导入数据

⒈使用键盘输入数据

  1. 创建一个空数据框(或矩阵),其中变量名和变量的模式需与理想中的最终数据集一致
  2. 针对这个数据对象调用文本编辑器,输入你的数据并将结果保存回此数据对象中

例如:

 > mydata <-data.frame(age=numeric(0),gender=character(0), weight=numeric(0))

 > mydata <- edit(mydata)

或者

> fix(mydata)

⒉从带分隔符的文本文件导入数据

read.table()

以数据框的格式读入数据,适合读取混合模式的数据,但是要求每列数据的数据类型相同

read.table(file, row.names, col.names)

file参数:是必须的,可以是相对路径或者绝对路径(注意:Windows下路径要用斜杠'/'或者双反斜杠'\\')。 row.names, col.names

字符型数据读入若自动转换为因子
令参数stringAsFactors=FALSE拒绝转换

read.table(file, header = FALSE, sep = "", skip = 0, fill =F, comment.char = "#")

header:表明首行是否包含了变量名
sep:指定分隔数据的分隔符。如sep="\t"读取以制表符分隔的文件
skip:指定从文件开头跳过的行数,优先级别高于参数comment.char 
fill:所有行中变量数目不同时,用空白代替
comment.char:读入时忽略开头为#号的行, 也可以设置为其他字符

read.csv:逗号分隔

read.csv2:分号

read.delim:制表符

均为read.table函数的包装,分隔符分别对应逗号,分号,制表符,同样接受read.table所有参数。不同在于header参数默认为TRUE,sep和quote参数内容存在差异。

readLines:Read Text Lines from a Connection

控制读入的数据行数,非批处理,有点类似于数据库中的指标操作,可对文件中的数据逐行操作;

Tips: 该数据配合R中的正则表达式相关函数,对于处理不规则的数据很强大。

readLines(con = stdin(), n = -1L)

con: 连接对象

n: 读取的行数, 负数代表读取全部

⒊读取剪切板

R语言可以从剪切板中直接读取数据,这种形式在快速读取文件,或临时读取简单文件时特别灵活方便。

以Excel内容为例
将excel的数据放在剪贴板中
通过read.delim("clipboard")来读取

read.delim(file, header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)

⒋读取Excel数据

  1. 读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv),并使用前文描述的方式将其导入,如read.table或read.csv
  2. 我们可以将excel的数据放在剪贴板中,通过read.delim函数读到剪贴板
  3. R包中的函数如RODBC包和readxl包

RODBC包(只基于Windows)

#安装和引用RODBC包,安装加引号,引入不加引号

install.packages("RODBC")

library(RODBC)

  #创建连接

connect<-odbcConnectExcel('secert.xls')

  #读取Excel表格,其中A为Sheet名(支持中文)

sqlFetch(connect,'A')

  #关闭R与Excel表格的连接

odbcClose(connect)

readxl包,支持.xls和.xlsx格式

#下载和引用

install.packages("readxl")

library(readxl)

  #读取Excel

read_excel("old_excel.xls")

read_excel("new_excel.xlsx")

  #sheet参数,指定sheet名或者数字

read_excel("excel.xls",sheet=2)

read_excel("excel.xls",sheet="data")

⒌批量读取文件

查看目录

# 当前的目录

> getwd()

  [1] "C:/Users/Documents“

# 查看当前目录的子目录
> list.dirs(path = ".", full.names = TRUE, recursive = TRUE)
  [1] "."                                        
  [2] "./5211game"                                          [3] "./5211game/KIT"

查看指定目录的子目录和文件

list.files(path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE, recursive = FALSE, ignore.case = FALSE)

path:路径,默认当前路径(getwd())
pattern: 返回满足字符模式的目录和文件
all.files: TURE情况下把隐藏文件也输出
full.names:输出是否加上路径
recursive:是否递归列出文件
ignore.case:是否忽略大小写

R语言的输出

⒈文本形式的输出

cat既能输出到控制台,也能输出到文件cat(... , file = "", sep = " ", append = FALSE)

writeLines将字符串向量输出到文件中writeLines(text, con = stdout(), sep = "\n", useBytes = FALSE)

write.table(x, file= "", append= FALSE, quote = TRUE, sep = " ", row.names = TRUE, col.names = TRUE)

x:输出的对象名(向量、矩阵、数据框)file:存储输出结果的文件append:是否将输出附加到文件中quote: 是否对字符或因子元素使用引号row.names, col.names:是否输出行名

print(x, digits = getOption("digits"), quote = FALSE, na.print = "", zero.print = "0", justify = "none", ...)

x:输出对象名

digits:有效数字位数

quote:字符串是否使用引号包围

na.pribt:指定NA值显示的字符串

zero.print:指定如何打印0字符,对于稀疏表,使用"."可以产生更可读的结果,类似于在矩阵中打印稀疏矩阵

justify:字符串对齐方式c("none", "left", "right", "centre")

⒉R语言格式输出

save()

例如:save(x, y, file = "xy.RData")

导入Rdata用load()函数例如:load("all.RData")

 

 

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JS宏可以通过以下步骤来获取剪切板数据: 1. 首先,在HTML页面中添加一个文本输入框和一个按钮,用于展示和触发获取剪切板数据的功能。例如: ```html <input type="text" id="clipboardData" /> <button onclick="getClipboardData()">获取剪切板数据</button> ``` 2. 在JS宏中定义`getClipboardData`函数,该函数用于获取剪切板数据。在函数中,可以使用`navigator.clipboard.readText()`方法来读取剪切板中的文本数据,并将其赋值给文本输入框。例如: ```javascript function getClipboardData() { navigator.clipboard.readText() .then(data => { document.getElementById("clipboardData").value = data; console.log("剪切板数据已获取:" + data); }) .catch(err => { console.error("获取剪切板数据失败:" + err); }); } ``` 3. 在实际使用过程中,可能需要考虑浏览器的兼容性。可以使用`Clipboard API`来检测浏览器是否支持剪切板读取功能。例如: ```javascript if (navigator.clipboard && navigator.clipboard.readText) { // 浏览器支持剪切板读取功能 // 进行获取剪切板数据的操作 } else { console.error("浏览器不支持剪切板读取功能"); } ``` 通过以上步骤,就可以使用JS宏来获取剪切板数据了。当点击获取剪切板数据的按钮时,JS宏将尝试读取剪切板中的文本数据,并将其显示在文本输入框中。如果浏览器不支持剪切板读取功能,则会在控制台中输出相应的错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值