R语⾔的输出R语⾔的输出函数有cat、sink、writeLines、write.table
1)cat
cat函数即能输出到屏幕,也能输出到⽂件
cat(... , file = "", sep = " ", fill = FALSE, labels = NULL,append = FALSE)
eg:
>cat("要添加的内容") ##结果:要添加的内容
>cat("a",file="d:/⾯试.txt",append=TRUE) ##再次打开⾯试.txt最后多了a
2)sink
sink函数将输出结果定向到⽂件
sink(file = NULL, append = FALSE, type = c("output", "message"),split = FALSE)
eg:
> sink("d:/⾯试.txt") ##以下的内容定向输⼊到⾯试
> cat("shemegui")    ##清除⾯试原内容,添加
> cat("jssjjs")      ##继续添加
> sink("d:/⾯试.txt") ##重定向
> cat("qqqqqq")      ##再次清除添加
3)writeLines
writeLines函数将字符串向量输出到⽂件中(会覆盖原始内容)
writeLines(text, con = stdout(), sep = "\n", useBytes = FALSE)
eg:
> a<-c("haha","hehe")
> writeLines(a,con="d:/⾯试.txt",sep="\t")  ##结果:haha hehe
> a=c("hahaha","hehehe") ##可以=号
> writeLines(a,con="d:/⾯试.txt",sep="\n") ##换⾏
4)write.table
write.table函数将dataframe的内容输出到⽂件
参数说明
x写⼊的对象的名称
file ⽂件名(缺省时对象直接被“写”在屏幕上)
append是否为增量写⼊
quote ⼀个逻辑型或者数值型向量:如果为TRUE,则字符型变量和因⼦写在双引 号""中;若quote是数值型向量则代表将欲写在""中的那些列的列标。(两种 情况下变量名都会被写在""中;若quote = FALSE则变量名不包含在双引号中)
sep⽂件中的字段分隔符eol 指定⾏尾符,默认为'\n'
eol 指定⾏尾符,默认为'\n'
na表⽰缺失数据的字符
dec⽤来表⽰⼩数点的字符
row.names⼀个逻辑值,决定⾏名是否写⼊⽂件;或指定要作为⾏名写⼊⽂件的字符型 向量
col.names⼀个逻辑值(决定列名是否写⼊⽂件);或指定⼀个要作为列名写⼊⽂件中 的字符型向量
qmethod 若quote=TRUE,则此参数⽤来指定字符型变量中的双引号"如何处理: 若参数值为"escape" (或者"e",缺省)每个"都⽤\"替换;若值为"d"则每个"⽤""替换
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",eol = "\n", na = "NA", dec = ".", row.names = TRUE,col.names = TRUE, qmethod = c("escape", "d
eg:
> m<-matrix(1:12,nrow=3)
> dd=as.data.frame(m)
> write.table(dd,file="d:/⾯试.txt",append=TRUE,row.names=FALSE)
##结果(加了列名)writelines()方法将什么写入文件
hahaha
hehehe
"V1" "V2" "V3" "V4"
1 4 7 10
2 5 8 11
3 6 9 12
> write.table(dd,file="d:/⾯试.txt",append=TRUE,col.names=FALSE)
##再加⼀句,结果
hahaha
hehehe
"V1" "V2" "V3" "V4"
1 4 7 10
2 5 8 11
3 6 9 12
"1" 1 4 7 10
"2" 2 5 8 11
"3" 3 6 9 12
> write.table(dd,file="d:/⾯试.txt",append=F)
##继续测试
"V1" "V2" "V3" "V4"
"1" 1 4 7 10
"2" 2 5 8 11
"3" 3 6 9 12
输出为表格:
> write.csv(dd,file="d:/tab.csv")
> write.table(dd,file="d:/sb.csv")
>write.csv(dd,file="d:/sb.xls")
>write.table(dd,file="d:/sb.xlsx")  ##结果⼀致
以下纯粹闹着玩的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。