r语言导入spss数据_R的文件及数据导入与优化

本文介绍了如何在R语言中导入各种类型的数据,包括分隔符数据、Excel表格、XML数据以及通过read.table()、xlsx包的read.xlsx()函数等工具处理。此外,还探讨了网页抓取和导入SPSS、SAS、STATA等统计软件的数据方法,为数据处理提供全面指导。
摘要由CSDN通过智能技术生成
edit() 可以直接以窗口的形式进行数据编辑

分隔符数据

read.table() 从带分隔符的文本文件中导入数据

d48ecd0351d417e42ea65275b3f4aefd.png
R也提供了若干种通过连接(connection)来访问数据的机制。例如,函数 file() 、 gzfile() 、 bzfile() 、 xzfile() 、unz() 和 url() 可作为文件名参数使用。函数 file() 允许你访问文件、剪贴板和C级别的标准输入。函数gzfile() 、 bzfile() 、 xzfile() 和 unz() 允许你读取压缩文件。函数 url() 能够让你通过一个含有http://、ftp://或file://的完整URL访问网络上的文件,还可以为HTTP和FTP连接指定代理。为了方便,(用双引号围住的)完整的URL也经常直接用来代替文件名使用。更多详情,参见 help(file) 。

文件名处理

dir.exists(), file.exists(), file.access(), http:// file.info() , list.files(), normalizePath() and path.expand()

R.utils包中的gunzip()可用于解压.gz结尾的文件。解压的默认过程中remove = TRUE,如果不想删除原文件,则需要自行更改为FALSE

gsefiles <- "D:/R_related/project/GSE123456_RAW/"
# setwd(gsefiles)

对于批量处理文件时,用list.files()提取文件名称,一定注意full.names参数的使用

gz_files <- list.files(gsefiles, full.names = TRUE, recursive = TRUE)
for(i in gz_files) gunzip(i, remove = FALSE)

在提取文件夹中特定的文件名时,可使用pattern =参数进行正则表达式指定

txt.files <- list.files(gsefiles, full.names = FALSE, recursive = TRUE, pattern = ".txt$")
sep.txt.files <- as.data.frame(lapply(txt.files, str_split, pattern = "_RNA-Seq_"))[1,]
sep.name <- t(sep.txt.files)
sep.name <- paste(sep.name, sep = ".", "txt")

在进行文件名的批量更改时,一定要先用setwd()指定修改名称的位置,因为file.rename()不能自动对应处理

# have to set the path first
setwd(gsefiles)
file.rename(txt.files, sep.name)

Excel表格数据

导入excel表格,可以将excel转化为csv之后读取,也可以用xlsx包的read.xlsx()函数读取

学习此函数的必要之处在于,可以选择读取表格中的子表格如read.xlsx(excel.xlsx, 2)表示读取第2个子表格
似乎一般readxl包更推荐一些

XML数据

xml包

网页抓取数据

一个网页上的文字可以使用函数 readLines() 来下载到一个R的字符向量中,然后使用如 grep() 和 gsub() 一类的函数处理它。

对于结构复杂的网页,可以使用 RCurl 包和 XML 包来提取其中想要的信息。

导入SPSS,SAS,STATA数据

# SPSS
library(Hmisc)
mydataframe <- spss.get("mydata.sav", use.value.labels=TRUE)

# SAS
mydata <- sas.get(libraryName=datadir, member="clients", sasprog=sasexe)

# STATA
library(foreign)
mydataframe <- read.dta("mydata.dta")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值