在用户函数中,给write.csv文件的输出赋予谁唯一的名称



下面是我的示例函数

op.try.df<- function(df){
x1 <- bind_rows(full_v_gu,summarise(df,across(where(is.numeric),sum)))
x2 <- x1%>%
mutate("Perc"=round(Composite_Score/MAX*100,0))
x3 <- x2[,c("Name" ,"Total","Score","Perc")]
write.csv(x3,"df.csv")
x3
}

如何根据输入数据帧名称提供输出文件名?我希望我的输出文件(df.csv(具有与数据帧相同的名称,例如,如果我的输入文件名为"new"op.try.df(new(,那么我如何在文件夹中获得文件名"new.csv"?目前我所有的输出文件都命名为df.csv.

在函数的开头,使用substitutedeparse来提取输入名称

op.try.df <- function(df){
nm1 <- paste0(deparse(substitute(df)),'.csv')
x1 <- bind_rows(full_v_gu,summarise(df,across(where(is.numeric),sum)))
x2 <- x1%>%
mutate("Perc"=round(Composite_Score/MAX*100,0))
x3 <- x2[,c("Name" ,"Total","Score","Perc")]
write.csv(x3, nm1)
x3
}

-测试

>  testing.df<- function(df){
+        nm1 <- paste0(deparse(substitute(df)),'.csv')
+        nm1
+      }
>      
>      testing.df(mtcars)
[1] "mtcars.csv"

相关内容

  • 没有找到相关文章