在指定整数上的R lappy
我有以下数组在指定整数上的R lappy,r,list,lapply,R,List,Lapply,我有以下数组df A B C D E F G [1,] 0 -4 12 33 -4 -1 -4 [2,] 1 -3 13 34 -3 0 -3 [3,] 2 -2 14 35 -2 1 -2 [4,] 3 -1 15 36 -1 2 -1 [5,] 4 0 16 37 0 3 0 [6,] 5 1 17 38 1 4 1 df的str如下所示: int [1:6, 1:7] 0 1 2 3 4 5 ... - attr(*, "di
df
A B C D E F G
[1,] 0 -4 12 33 -4 -1 -4
[2,] 1 -3 13 34 -3 0 -3
[3,] 2 -2 14 35 -2 1 -2
[4,] 3 -1 15 36 -1 2 -1
[5,] 4 0 16 37 0 3 0
[6,] 5 1 17 38 1 4 1
df的str
如下所示:
int [1:6, 1:7] 0 1 2 3 4 5 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:7] "A" "B" "C" "D" ...
我想,对于每一列,提取大于0的元素,但是保留列名,比如生成一个列表。一种方法是使用lappy
lapply(df, function(x) x[which(x > 0)])
但有两个问题:
有比Lappy更好的解决方案吗 您有矩阵吗?请提供
dput(df)
。你在那里展示的似乎是一个矩阵。请发布class(df)
的结果。我打赌它是一个矩阵。请将完整的输出放入问题中。但这是一个矩阵。无论如何,你不能比lappy(如.data.frame(m),function(x)x[x>0])做得更好。
当你在矩阵上使用lappy时,它会按单元格而不是按列计算。