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

R函数:无法从函数调用数据帧,r,dataframe,R,Dataframe,我已经编写了一个函数,可以在字符串数据帧上循环。它获取df的第一个字符串值,进行计算并转到另一行 函数的参数已经在我的工作区中。当运行函数的单独一行时,它可以完美地工作。当试图通过提供参数来调用它时,我得到错误消息 value for ‘dtraw.id’ not found 下面是函数 test <- function(ids,dfs,columns){ #dfs <- ls()[sapply(mget(ls(), .GlobalEnv), is.data.frame)]

我已经编写了一个函数,可以在字符串数据帧上循环。它获取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)
}
test您可以使用get()函数将数据帧名称作为字符串传递给它。否则R根本不知道你想做什么

df = data.frame('var1' = 1:100)
你可以在这里看到什么起作用和什么不起作用的过程:

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

您需要提供示例数据,以便其他人能够提供帮助。在这里看到更多