将数据框名称分配给函数中的变量

时间:2015-12-11 07:18:54

标签: r

我创建了一个函数并将数据框作为参数传递给函数。现在,我想将该数据框名称作为字符串并将其存储为字符串变量。

使用的代码:

RFun <- function(a){
    args=(commandArgs(TRUE))
    l<<-80
    h<<-85
    fname<<-paste(a,"_Temp.csv")
    a_R<-filter(a_RW,cs==2|cs==3)
    a_R<-a_Rinse[-c(2,3)]
    write.csv(a_R,file=fname,row.names=FALSE)
    a_Rinse_Temperature_Deviations <- read.csv(paste("~/",fname"))
}

RFun(df)

当我尝试执行时,从上面的函数中创建数值变量lh,其中包含我指定的值,但fname正在为包含行的完整数据框创建和列,它没有按照我的要求存储。

执行也需要很多时间。

预期fname df_Temp.csv 。其中df是数据框。

2 个答案:

答案 0 :(得分:1)

看起来像 assign(String varName,obj Value)可能会让你到达你需要的位置。

RFun<-function(a){
args=(commandArgs(TRUE))
l<<-80
h<<-85
fname <<- "File_Name_Text"
assign (fname,paste(a,"_Temp.csv"))
a_R<-filter(a_RW,cs==2|cs==3)
a_R<-a_Rinse[-c(2,3)]
write.csv(a_R,file=fname,row.names=FALSE)
a_Rinse_Temperature_Deviations <- read.csv(paste("~/",fname))  
} 

答案 1 :(得分:0)

没有一个有效的例子,很难效法。但是尝试只分配&#34;名称&#34;你的df而不是完整的df。试试这个:

fname <<- paste(deparse(substitute(a)),"_Temp.csv",sep="")