我有 3 个数据帧,df1、df2、df3。我需要将这些 df 转换为 csv 文件。所以,我在函数的帮助下使用如下 write.csv。
hiveq <- function(f_name){
f_name
write.csv(f_name,file=paste(f_name,".csv",sep=""),row.names = FALSE, col.names = FALSE)}
hiveq("df1")
hiveq("df2")
hiveq("df3")
当我打开 csv 表时,它只显示 df1,而不是 df1 的内容。我怎么能对 R 说,它应该被视为 Df 而不是字符串。我尝试使用 as.name、gsub、as.formula 删除 f_name 变量周围的引号,但不起作用。有人可以帮助我吗?
最佳答案
一种方便的方法是使用“非标准评估”。以下是这在您的情况下的工作方式:
hiveq <- function(df) {
write.csv(df, file = paste(deparse(substitute(df)),".csv",sep=""), row.names = FALSE, col.names = FALSE)
}
hiveq(df1)
hiveq(df2)
hiveq(df3)
这里发生的是表达式
deparse(substitute(df))
返回一个字符串,其中包含传递给 df
的 R 对象的名称。 .所以当你打电话时:hiveq(df1)
计算结果为“df1”,函数将数据帧写入名为“df1.csv”的文件。
关于r - 将 data.frame 写入 CSV 文件并使用它们的变量名作为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549008/