r - 将 data.frame 写入 CSV 文件并使用它们的变量名作为文件名

标签 r csv dataframe

我有 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/

相关文章:

sql - excel ace.oledb vba 连接到 csv 只返回第一列

PHP 将 MySQL 导出为 csv 以供应用程序发明者使用

python - 在 Pandas 中将 csv 转换为 txt 时,电话号码中丢失 "+"

python - 如何使用 Python 输出嵌套循环的结果

r - 基于行号矩阵对数据帧进行子集化,并将结果保存在一个列表中

r - 有没有一种方法可以在R的plot.zoo函数中省略时间间隔?

r - 使用循环添加顺序值

r - 新创建的数据框丢失了其向量类别的标签

r - 尝试在具有属性的 tmap shapefile 中绘制

python - 为什么带有 pd.isnull 的 pd.DataFrame 失败?