我有一个使用数据帧列表(variables
)的函数,并给出两个数据帧(对于列表中的每个数据帧)作为输出,我想用不同的变量名保存每个数据帧(而不是up.val
和down.val
)和不同的文件名。变量和文件名都存储在我创建的字符向量中。
filtering_data <- function(x){
x <- as.data.frame(x)
pval <- which(x$P.Value < 0.05)
pval <- x[pval,]
up.pval <- which(pval$t > 0)
down.pval <- which(pval$t < 0)
up.pval <- pval[up.pval,]
down.pval <- pval[down.pval,]
save(up.pval, file = file.Rda)
save(down.pval, file = file.Rda )
}
lapply(variables, filtering_data)
答案 0 :(得分:0)
我认为您希望使用assign
将值分配给新名称,然后将变量名称作为list
参数提供给save
。如:
filtering_data <- function(x,varName,file.rda){
[calculations go here]]
# assign() only assigns one value so check the length of varName
stopifnot(length(varName)==1)
# make the new variable names
name.up <- paste0(varName,'.','up')
name.down <- paste0(varName,'.','down')
# assign the values to them in the current environment
assign(name.up,up.pval)
assign(name.down,down.pval)
# save the named variables
save(list=name.up, file=file.rda)
save(list=name.down,file=file.rda)
}
顺便说一下,file.rda
应该是一个参数,而不是假设它已经定义了