我有一个简单的问题(至少不适合我..)。我已经以具有不同长度的多个数据帧的列表结束。我想计算每个数据帧的长度..
mylist <- list (a = data.frame(i = 1:10, j= 11:20), b = data.frame(i = 1:5, j= 11:15), c = data.frame(i = 1:8, j= 11:18))
mylist
$a
i j
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19
10 10 20
$b
i j
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
$c
i j
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
我可怜的代码:
lapply(mylist, function(y)length(y)
$a
[1] 2
$b
[1] 2
$c
[1] 2
不好了.....
如何计算每个组件数据框中的行数并获得一个新向量:
# number of rows in each component dataframe of the list
myvec
[1] 10 5 8
谢谢你的时间......我很感激......
最佳答案
尝试这个:
myvec <- sapply(mylist, NROW)
length
使用 data.frames 给出“奇数”结果,因为 data.frames 实际上是相同长度的向量列表。 length(data.frame)
正在为您提供基础列表的长度,即 data.frame 的列数。NROW
和 NCOL
很好,因为它们倾向于为大多数对象提供“预期”结果。我经常交互地使用它们,但又回到 nrow
, ncol
, 和 length
在编写稳定的代码(例如程序、包)时,因为它们避免了一些额外函数调用的开销。
关于list - 如何计算行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340197/