从数据帧列表中的每个数据帧调用特定列

时间:2016-10-03 19:05:21

标签: r lapply

我想报告数据框列表中每个数据框的特定列。有任何想法吗?这是我的代码:

# Create dissimilarity matrix
df.diss<-dist(t(df[,6:11]))

mds.table<-list() # empty list of values
for(i in 1:6){ # For Loop to iterate over a command in a function
  a<-mds(pk.diss,ndim=i, type="ratio", verbose=TRUE,itmax=1000)
  mds.table[[i]]<-a # Store output in empty list
}

现在我遇到了麻烦。存储值后,我无法从列表中的每个数据帧调用特定列。

# This function should call every $stress column from each data frame.
lapply(mds.table, function(x){
  mds.table[[x]]$stress
  })

再次感谢!

1 个答案:

答案 0 :(得分:4)

你非常接近:

set.seed(1)
l_df <- lapply(1:5, function(x){
  data.frame(a = sample(1:5,5), b = sample(1:5,5))
})

lapply(l_df, function(x){
  x[['a']]
})

[[1]]
[1] 2 5 4 3 1

[[2]]
[1] 2 1 3 4 5

[[3]]
[1] 5 1 2 4 3

[[4]]
[1] 3 5 2 1 4

[[5]]
[1] 5 3 4 2 1