我已经有了一个数据框列表(mylist),需要切换列表中所有数据框的第一列和第二列。
[reads] [phylum]
1 phylum1
2 phylum2
3 phylum3
向...
[phylum] [reads]
phylum1 1
phylum2 2
phylum3 3
我知道我需要使用lapply,但不确定要为FUN =
输入什么 mylist <- lapply(mylist, FUN = mylist[ ,c("phylum", "reads")])
错误说明维数不正确
很抱歉,如果这是一个简单的问题,请提前感谢您的帮助!
-Brand new R user
答案 0 :(得分:1)
FUN
要求提供一个可以应用于列表中每个元素的函数。您正在传递mylist[ ,c("phylum", "reads")])
这不是函数。
# sample data
df1 <- data.frame(reads = sample(10,4), phylum = sample(10,4))
df2 <- data.frame(reads = sample(10,4), phylum = sample(10,4))
df3 <- data.frame(reads = sample(10,4), phylum = sample(10,4))
df4 <- data.frame(reads = sample(10,4), phylum = sample(10,4))
ldf <- list(df1,df2,df3,df4)
ldf_re <- lapply(ldf, FUN = function(X){X[c('phylum', 'reads')]})
在最后一行中,lapply
将遍历所有数据帧,它们将作为X
参数中定义的函数的FUN
参数传递,列将是数据框将存储在列表ldf_re
中,其列重新排列。