将数据框和额外行添加到csv

时间:2015-01-26 20:45:20

标签: r csv statistics

我有以下dataFrame:

n = c(2, 3, 5) 
s = c("aa", "bb", "cc") 
b = c(TRUE, FALSE, TRUE) 
df = data.frame(n, s, b) 

string1 <- paste("Length of result: " ,  length(df))
summary <- summary(df)

write.csv(df, file = "result.csv",row.names=TRUE, sep=',')

目前只写入df的输入。我还想将string1summary添加到我的result.csv。最好的解决方案是,如果我在结果和输出之间可以有一个空行。

有关如何将string1summary添加到result.csv文件的任何建议吗?

感谢您的回复!

更新

我尝试了NealC的方法并得到了:

enter image description here

这基本上是错的!我想得到类似的东西:

enter image description here

2 个答案:

答案 0 :(得分:1)

既然你喜欢我的建议,我就是这样做的。

file <- read.csv(result.csv, sep=",")

您可以在再次导出数据之前以这种方式格式化数据,这就是为什么我选择这个而不仅仅是附加到可能导致错误的文件。

然后你想要把它们放在一起。

newData <- rbind(file,df)

然后执行您在代码中执行的操作并再次导出。

write.csv(newData, file = "result.csv",row.names=TRUE, sep=';', row.names=FALSE)

希望这有帮助。

答案 1 :(得分:1)

write.csv()来电之后,您可以通过以下对cat()的调用附加到csv。

cat("\n", "Freq", summary[,1], sep = "\n", append = TRUE, file = "result.csv")

在上面的电话中,我们发生了什么:

  • 首先使用"\n"添加一个额外的空白行。
  • 然后在摘要上方添加您要求的"Freq"
  • 对于摘要的summary[,1]部分,
  • 下一步是n
  • 然后换行符sep = "\n"
  • 最后append = TRUE将所有这些附加到文件file = "result.csv"

生成的文件如下所示:

"","n","s","b"
"1",2,"aa",TRUE
"2",3,"bb",FALSE
"3",5,"cc",TRUE


Freq
Min.   :2.000  
1st Qu.:2.500  
Median :3.000  
Mean   :3.333  
3rd Qu.:4.000  
Max.   :5.000  

要将这些分别读回R,你可以做到

read.csv("result.csv", nrows = 3)
#   X n  s     b
# 1 1 2 aa  TRUE
# 2 2 3 bb FALSE
# 3 3 5 cc  TRUE
cat(scan("result.csv", skip = 5, what = "", sep="\n"), sep="\n")
# Freq
# Min.   :2.000  
# 1st Qu.:2.500  
# Median :3.000  
# Mean   :3.333  
# 3rd Qu.:4.000  
# Max.   :5.000