在多个数据帧上执行列 select
Performing column select over multiple dataframes
我已经四处寻找这个答案,他们很接近但没有雪茄。我正在尝试在多个数据帧上执行列选择。我可以做到这一点和 return 一个列表,但我希望在全局环境中保留数据帧。我想将数据帧分开以便于使用和在 Rstudio 中的可见性。例如,对于一个数据框,我根据名称选择列:
E07 <- E07[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
我在 dflist 中列出了 x 个数据帧,所以我编写了这个函数:
columnselect<-function(df){df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")];df}
然后我希望在 dflist 上应用它:
lapply(X=dflist,FUN=columnselect)
这return是 dflist 的功能,但数据表保持不变。如何在不 return 在列表中将它们应用到多个数据帧上的功能。
非常感谢
M
您的函数 returns 数据框未更改,因为这是您函数中最后计算的内容。而不是:
columnselect<-function(df){
df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
df}
应该是:
columnselect<-function(df){
df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
}
函数中的最后一个 df
只是返回了函数中传递的完整 df。
至于第二个问题,您希望 data.frames 在全局环境中而不是在列表中(如您所知,这是不好的做法;最好将它们保留在列表)你需要 list2env
函数即:
mylist <- lapply(X=dflist,FUN=columnselect)
list2env(mylist, envir = globalenv())
使用这个 data.frames 全局环境将被更新。
我已经四处寻找这个答案,他们很接近但没有雪茄。我正在尝试在多个数据帧上执行列选择。我可以做到这一点和 return 一个列表,但我希望在全局环境中保留数据帧。我想将数据帧分开以便于使用和在 Rstudio 中的可见性。例如,对于一个数据框,我根据名称选择列:
E07 <- E07[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
我在 dflist 中列出了 x 个数据帧,所以我编写了这个函数:
columnselect<-function(df){df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")];df}
然后我希望在 dflist 上应用它:
lapply(X=dflist,FUN=columnselect)
这return是 dflist 的功能,但数据表保持不变。如何在不 return 在列表中将它们应用到多个数据帧上的功能。
非常感谢 M
您的函数 returns 数据框未更改,因为这是您函数中最后计算的内容。而不是:
columnselect<-function(df){
df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
df}
应该是:
columnselect<-function(df){
df[,c("Block","Name","F635.Mean","F532.Mean","B635.Mean","B532")]
}
函数中的最后一个 df
只是返回了函数中传递的完整 df。
至于第二个问题,您希望 data.frames 在全局环境中而不是在列表中(如您所知,这是不好的做法;最好将它们保留在列表)你需要 list2env
函数即:
mylist <- lapply(X=dflist,FUN=columnselect)
list2env(mylist, envir = globalenv())
使用这个 data.frames 全局环境将被更新。