R:写文件(输入与输出)


    由于R语言主要用于统计功能,读文件可能比写文件更为常用,但是写文件有时候也很必要。

 

    Write.table()函数的用法read.table()非常相似,只不过它把数据框写入文件而不是从文件中读取。参数和选项:

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

函数Write.table()的选项值及说明

选项值

说明

 x

   要写入的对象名

 file

   文件名(缺省时对象直接被“写”在屏幕上)

 append

   如果为TRUE则在写入数据时不删除目标文件中可能已存在的数据,采取往后添加的方式

 quote

   一个逻辑型或者数值型向量:如果为TRUE,则字符型变量和因子写在双引号("")中,若quote是数值型向量则代表将欲写在("")中的那些列的列标

 sep

   文件中的字段分隔符

 eol

   使用在每行最后的字符("\n"表示回车)

 na

   表示确实数据的字符

 dec

   用来表示小数点的字符

 row.names 

   一个逻辑值,决定行名是否写入文件,或指定要作为行名写入文件的字符型向量

 col.names

   一个逻辑值(决定列名是否写入文件);或指定一个要作为列名写入文件中的字符向量

 qmethod

   若quote=TRUE,则此参数用来指定字符型变量中的双引号("")如何处理;若参数值为"escape"(或者"e",缺省)每个"都用\"替换,若值为"d",则每个"都用""替换

 

> kids <- c( "Jack", "Jill", "Kate" )

> ages <- c( 25, 36, 18 )

> d <- data.frame( kids, ages, stringsAsFactors=FALSE )

> write.table( d, "D:/RCodes/dfile.txt" )

dfile文件包含以下内容:

R:写文件(输入与输出)_第1张图片

    如果想把矩阵写入文件,只需要声明不要列名和行名即可。

> x <- matrix( scan("D:/RCodes/readM.txt", quiet=TRUE),nrow=5, byrow=TRUE )

> write.table( x, "D:/RCodes/writeM.txt", row.names=FALSE, col.names=FALSE )

R:写文件(输入与输出)_第2张图片

    cat()函数同样可以用来写入文件,一次写入一部分。

cat( "abc\n", file="D:/RCodes/writeCAT.txt" )

cat( "def\n", file="D:/RCodes/writeCAT.txt",append=TRUE )

cat( file="writeCAT.txt", 1, 2, "xyz\n" )

第一次调用cat()时在指定目录下创建了文件writeCAT.txt,包含一行内容”abc”。第二次调用追加了第二行,这个文件会在每一次操作之后自动保存。cat()函数可以写多个字段,上面最后一行的代码会生成只有一行内容的文件writeCAT.txt。

 

    还可以使用writeLines()函数,它是readLines()的相对。如果用的是连接,则必须设定参数“w”来指明是要写文件而非读取。

c <- file( "file", "w" )

writeLines( c( "abc", "de", "f" ), c )

close( c )   #这里需要主动关闭文件

 


 

你可能感兴趣的:(R)