这篇文章主要介绍了R语言数据读取以及数据保存方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
一、R语言读取文本文件:
1、文件目录操作:
getwd() : 返回当前工作目录
setwd("d:/data") 更改工作目录
2、常用的读取指令read
read.table() : 读取文本文件
read.csv(): 读取csv文件
如果出现缺失值,read.table()会报错,read.csv()读取时会自动在缺失的位置填补NA
3、灵活的读取指令
scan() :
4、读取固定宽度格式的文件:
read.fwf()
文本文档中最后一行的回车符很重要,这是一个类似于停止符的标识,否则读入时会显示“最后一行不完整”的警告,但是不影响数据读入的效果。
5、读取Excel数据:
(1)第一种方法
首先打开Excel,选中需要的数据后复制,
然后再R中输入以下的指令:data.excel =read.delim("clipboard") #clipboard即剪贴板
(2)第二种方法:
使用RODBC包,获取Excel连接的函数是odbcConnectExcel()和odbcConnectExcel2007() 分别读取Excel2003版和2007版的数据channel =odbcConnectExcel2007("d:/a.xlsx")
sqlTables(channel)# 列出Excel中的表格
获取Sheet1中的数据,可以使用如下任意的一种方式,
data.excel2 =sqlFetch(channel,"Sheet1")
data.excel2 =sqlQuery(channel,"select * from [Sheet1$]")
close(channel) #关闭ODBC连接,释放空间
6、读取网页数据
readHTMLTable()函数
7、读取R格式的文件:
R的数据或者更一般的对象可以通过save()保存为R专有的文件格式,以Rdata为后缀,要读取此类文件,需要用到函数load()来加载,
8、readLines("d:/data/cat.txt"):
可以直接从连接中以行的形式来读取文本
要显示列表中的变量 需要使用符号$
二、数据保存:
1、使用函数cat()
cat(...,file="",sep="",fill = FALSE ,labels=NULL,append=FALSE) #file表示要输出的文件名,当参数append=TRUE时,在指定文件的末尾添加内容。sep:表示以空格作为分隔符
2、保存为文本文件:
write仅可以写出一个矩阵或向量的特定列,和对一个矩阵进行转置
write.table() 可以把一个数据框或列表等对象以包含行列标签的方式写出。
write.csv(): 将数据框保存为逗号分隔文件,但是不包含列名
3、保存R格式文件:
save(data,file="d:/data/salary1.Rdata")
dim():求维度
mode() 用来显示对象的类型
names():显示对象中的标签
补充:R语言读取数据、拆分数据,并保存到相应文件夹
将一张Excel表的数据按照第一列元素分组,分组后按照某种规则命名,并重新读入Excel中,放入指定的文件夹中。
如上所示的excel表,将sheet1中的数据按照“地域名称”拆分,并将数据放入相应的省份文件夹,如放入D盘的test文件夹中
D:\mydata\test
|__test
|___mydata.xlsx
|___安徽省
|___安徽省安庆市.xlsx
|___安徽省蚌埠市.xlsx
|___河北省
|__河北省蚌埠市.xlsx
|___……
假如数据最终的文件夹目录如上所示。代码可以作如下编写:
library(readxl) # 载入readxl包,使用read_excel读入excel文件
library(xlsx) # 载入xlsx包,使用write.xlsx保存文件为excel格式
# setwd()设置路径为D:\\mydata\\test'
setwd('D:\\mydata\\test')
# read_excel 读入数据,具体用法可使用帮助。
# 1表示读入第一张sheet,2表示读入第二张sheet,也可用sheet = "sheetname",默认第一行为标题行
dt = read_excel('mydata.xlsx', 2)
# unique() 过滤重复数据,保留唯一数据
# 此处过滤掉第2列和第3列的重复行,最终只剩下3行不重复数据,默认不含标题
province_city <- unique(dt[,2:3])
setwd('D:\\mydata\\test') # 设置当前路径为省份文件夹放置的目录
cdir <- setwd('D:\\mydata\\test')
# 循环次数 n=province_city 的行数
for (i in c(1:nrow(province_city [,1]))){
# subset()读取子集,subset(data, data[, 1] == "a") 读取data中第一列所有为a的行
dt1 <- subset(dt, dt[,2]==as.character(province_city[i,1]))
# paste,设置filename, 即安徽省,河北省
cfilename = paste(province_city[i,1],".xlsx",sep = "")
# 用于下面的if语句判断 创建的“安徽省”目录是否存在
f_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep="")
# 创建的“安徽省”目录不存在,则创建;存在则不动作. F 表示False
if (file.exists(f_dir) == F){
dir.create(province_city[i,2])
}else { }
# 设置文件名称,即安徽省安庆市.xlsx
c_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep = "")
# 设置c_dir为当前路径
setwd(c_dir)
# write.xlsx 将所需的文件列保存到上述设置的文件中,col.names=TRUE包含标题
write.xlsx(dt1[,2:5],cfilename,col.names=TRUE,showNA=FALSE)
# 设置路径为cdir,进入到下一次循环
setwd(cdir)
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程学习网。如有错误或未考虑完全的地方,望不吝赐教。
本文标题为:R语言数据读取以及数据保存方式
基础教程推荐
- R语言基于Keras的MLP神经网络及环境搭建 2022-12-10
- R语言数可视化Split violin plot小提琴图绘制方法 2022-12-10
- swift 字符串String的使用方法 2023-07-05
- Go web部署报错panic: listen tcp xxxxxxx:8090: bind: cannot assign requested address 2023-09-05
- asm基础——汇编指令之in/out指令 2023-07-06
- R包ggtreeExtra绘制进化树 2022-12-14
- R语言-如何将科学计数法表示的数字转化为文本 2022-11-23
- swift版webview加载网页进度条效果 2023-07-05
- ruby-on-rails-使用Nginx的Rails的多阶段环境 2023-09-21
- UEFI开发基础HII代码示例 2023-07-07