R 使用动态选择数据帧列$

R 使用动态选择数据帧列$,r,dataframe,R,Dataframe,我试图从数据帧中动态选择列。假设我有一个列名向量,需要将其传递给数据帧 df_test$c1$c2$c3 这里是我试图动态传递的c2。我在stackoverflow中发现了一个类似的问题,但这里只讨论df_测试$c1和动态通过c1 添加可复制代码 dfList <- split(mtcars, mtcars$cyl) # the following list the columns mpg, dfList$`8`$mpg dfList$`6`$mpg dfList$`4`$mpg

我试图从数据帧中动态选择列。假设我有一个列名向量,需要将其传递给数据帧

df_test$c1$c2$c3
这里是我试图动态传递的c2。我在stackoverflow中发现了一个类似的问题,但这里只讨论df_测试$c1和动态通过c1

添加可复制代码

dfList <- split(mtcars, mtcars$cyl)
# the following list the columns mpg,  
dfList$`8`$mpg
dfList$`6`$mpg
dfList$`4`$mpg

#Here I am trying to add 8 ,6 and 4 to a list 
cols <- c("`8`", "`6`","`8`")
#and then pass it to 
dfList$cols[1]$mpg
有什么办法可以做到这一点吗?

这个怎么样:

dfList <- split(mtcars, mtcars$cyl)

cols <- c('8', '6','4')

dfList[[cols[[1]]]]$mpg

你想用这个达到什么目的?您只是在尝试选择具有列名称向量的列吗?另外,请提供您的数据,以便人们有一些工作。感谢用户的回应。是的,这是正确的,但是这里c2是我想要传递动态列名列表的地方,而不是传递给c1。所以我不知道如何去接近[]。这是不清楚的。如果df_test是data.frame,那么这意味着要么c1是其中的一列,要么需要一个名为c1的变量来指示要选择的列。我不知道c2应该在这里。我建议你。将列名称列表的动态传递给c2对我来说仍然没有意义。也许你想要df_test[c2]来代替?@r2evans c1是数据帧中的列列表,c2是c1中的另一列列表,c3是c2列列表中的列。