R 函数:无法从函数调用数据帧



我写了一个遍历字符串数据帧的函数。它获取 df 的第一个字符串值,进行计算并继续另一行。

该函数的参数已经在我的工作场所中。当运行函数的单独行时,它可以完美地工作。尝试通过给出参数来调用它时,我收到错误消息

value for ‘dtraw.id’ not found

这是函数

test <- function(ids,dfs,columns){
#dfs <- ls()[sapply(mget(ls(), .GlobalEnv), is.data.frame)]
main_table<-merge(ids,mget(dfs[1])[[dfs[1]]],by='id',all.x=T)
coln<-colnames(main_table) %in% columns
main_table<-main_table[,coln]
main_table[,dfs[1]]=rowSums(main_table[sapply(main_table,is.numeric)],na.rm = T)
for(j in 2:length(dfs)){
result<-as.data.frame(mget(dfs[j])[[dfs[j]]])
coln<-colnames(result) %in% columns
result<-result[,coln]
result[,dfs[j]]<-rowSums(result[sapply( result,is.numeric)],na.rm = T)
main_table<-merge(main_table,result[,c('id',dfs[j])],by='id',all.x=T)
}
saveRDS(main_table,'aggregates.rds')
#return(main_table)
}

调用测试(IDS,DFS,列(时,我收到错误。

任何帮助可能是什么原因?

您可以使用 get(( 函数将数据帧名称作为字符串传递给它。否则 R 不知道你想做什么。

df = data.frame('var1' = 1:100)

您可以在此处查看有效和无效的进展:

summary(df)
summary('df')
summary(get('df'))

最新更新