edit() 可以直接以窗口的形式进行数据编辑
分隔符数据
read.table() 从带分隔符的文本文件中导入数据
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")