R语言数据文件读写

xiaoxiao2021-03-01  9

原文地址为: R语言数据文件读写

R语言数据储存与读取

1 首先用getwd() 获得当前目录,用setwd("C:/data")设定当前目录

 

2 数据保存

创建数据框d

>d <- data.frame(obs = c(1, 2, 3), treat = c("A", "B", "A"), weight = c(2.3, NA, 9))

2.1 保存为简单文本

Usagewrite.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")

>write.table(d, file = "c:/data/foo.txt", row.names = F, quote = F) # 空格分隔

>write.table(d, file = "c:/data/foo.txt", row.names = F, quote = F, sep="\t")  # tab 分隔的文件

2.2 保存为逗号分割文本

>write.csv(d, file = "c:/data/foo.csv", row.names = F, quote = F)

2.3 保存为R格式文件

>save(d, file = "c:/data/foo.Rdata")

2.4 保存工作空间镜像

>save.image( ) = save(list =ls(all=TRUE), file=".RData")

 

3 数据读取

读取函数主要有:read.table( ), scan( ) ,read.fwf( ),readLines().

3.1 用 read.table( ) 读 "c:\data” 下houses.dat

>options(stringsAsFactors=FALSE)

>setwd("C:/data"); HousePrice <- read.table(file="houses.dat")

如果明确数据第一行做表头,则使用header选项

>HousePrice <- read.table("houses.dat", header=TRUE)

read.table( ) 变形有: read.csv( ),read.csv2( ), read.delim( ), read.delim2( ).前两读取逗号分割数据,后两个读取其他分割符数据。

3.2  用scan( ) 比read.table( ) 更灵活。

但要指定 变量类型:如:C:\data\data.dat:

M 65 168

M 70 172

F 54 156

F 58 163

>mydata <- scan("data.dat", what = list("", 0, 0))

>mydata <- scan("data.dat", what = list(Sex="", Weight=0, Height=0))

3.3 用read.fwf( )读取文件中一些固定宽度数据

如:C:\data\data.txt:

A1.501.2

A1.551.3

B1.601.4

>mydata <- read.fwf("data.txt", widths=c(1, 4, 3), col.names=c("X","Y","Z"))

 

4 excel格式数据读取

4.1 利用剪切板

选择excel数据,再用(CTRL+C)复制。在R中键入命令:

>mydata <- read.delim("clipboard")

4.2 使用程序包 RODBC.

如: c:\data\body.xls

Sex Weight Height

M 65 168

M 70 172

F 54 156

F 58 163

> library(RODBC)

> z <- odbcConnectExcel("c:/data/body.xls")

> foo <- sqlFetch(z, "Sheet1")

> close(z)

 

 

To an Excel Spreadsheet 保存为Excel文件:

library(xlsx)    #   注意: 软件包需要安装 write.xlsx(mydata, "c:/mydata.xlsx") #   参考: https://danganothererror.wordpress.com/2012/02/12/write-data-frame-to-excel-file/

The WriteXLS function from the WriteXLS package (link: http://cran.r-project.org/web/packages/WriteXLS/index.html) can write data to Excel.

Alternatively, write.xlsx from the xlsx package (link: http://cran.r-project.org/web/packages/xlsx/) will also work.

 

注意:

1 writeLines 会在最后一行/或者每行末尾加一个换行符

# fileConn<-file(output_fasta)# writeLines(mystr, fileConn)# close(fileConn)

 

fileConn<-file("output.txt")writeLines(c("Hello","World"), fileConn)close(fileConn) txt <- "Hallo\nWorld"writeLines(txt, "outfile.txt")

or

txt <- c("Hallo", "World")writeLines(txt, "outfile.txt")  

 

2 另外一个写文件的方法是sink,不会在行末加换行符

sink(output_fasta)cat(mystr)sink()

 

sink("outfile.txt")cat("hello")cat("\n")cat("world")sink() > cat("Hello",file="outfile.txt",sep="\n")> cat("World",file="outfile.txt",append=TRUE)file.show("outfile.txt") line="blah text blah blah etc etc"write(line,file="myfile",append=TRUE) 

 

write is a wrapper for cat, which gives further details on the format used.

save for writing any R objects, write.table for data frames, and scan for reading data.

 

readChar(con, nchars, useBytes = FALSE)

writeChar(object, con, nchars = nchar(object, type = "chars"), eos = "", useBytes = FALSE)

 

# readfileName <- 'foo.txt'oldstring<-readChar(fileName, file.info(fileName)$size)

 

REF:

http://www.statmethods.net/input/exportingdata.html

http://hi.baidu.com/wuyu466/item/d46edcd96c2838e955347f2c

转载请注明本文地址: R语言数据文件读写
转载请注明原文地址: https://www.6miu.com/read-3350107.html

最新回复(0)