将数据框和额外的行添加到 csv
Add data frame and extra rows to csv
我有以下数据框:
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
的输入。我还想将 string1
和 summary
添加到我的 result.csv
。最好的解决方案是,如果我可以在结果和输出之间有一个空行。
有什么关于如何将 string1
和 summary
添加到我的 result.csv
文件的建议吗?
感谢您的回复!
更新
我尝试了 NealC 的方法并得到:
这基本上是错误的!我想要这样的东西:
既然你喜欢我的建议,下面就是我的做法。
file <- read.csv(result.csv, sep=",")
您可以在再次导出数据之前以这种方式对数据进行更多格式化,这就是为什么我选择它而不是简单地附加到文件,这无论如何都可能导致错误。
然后你想把它们绑定在一起。
newData <- rbind(file,df)
然后执行您在代码中所做的操作并再次导出。
write.csv(newData, file = "result.csv",row.names=TRUE, sep=';', row.names=FALSE)
希望对您有所帮助。
在 write.csv()
调用之后,您可以通过以下对 cat()
.
的调用附加到 csv
cat("\n", "Freq", summary[,1], sep = "\n", append = TRUE, file = "result.csv")
在上面的调用中,发生了什么:
- 先用
"\n"
多加一个空行。
- 然后在摘要上方添加您请求的
"Freq"
行
- 接下来是摘要的
n
部分的 summary[,1]
- 然后是换行符
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
我有以下数据框:
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
的输入。我还想将 string1
和 summary
添加到我的 result.csv
。最好的解决方案是,如果我可以在结果和输出之间有一个空行。
有什么关于如何将 string1
和 summary
添加到我的 result.csv
文件的建议吗?
感谢您的回复!
更新
我尝试了 NealC 的方法并得到:
这基本上是错误的!我想要这样的东西:
既然你喜欢我的建议,下面就是我的做法。
file <- read.csv(result.csv, sep=",")
您可以在再次导出数据之前以这种方式对数据进行更多格式化,这就是为什么我选择它而不是简单地附加到文件,这无论如何都可能导致错误。
然后你想把它们绑定在一起。
newData <- rbind(file,df)
然后执行您在代码中所做的操作并再次导出。
write.csv(newData, file = "result.csv",row.names=TRUE, sep=';', row.names=FALSE)
希望对您有所帮助。
在 write.csv()
调用之后,您可以通过以下对 cat()
.
cat("\n", "Freq", summary[,1], sep = "\n", append = TRUE, file = "result.csv")
在上面的调用中,发生了什么:
- 先用
"\n"
多加一个空行。 - 然后在摘要上方添加您请求的
"Freq"
行 - 接下来是摘要的
n
部分的summary[,1]
- 然后是换行符
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