我有一个简单的问题(至少不适合我......)。我已经以包含不同长度的多个数据帧的列表结束。我想计算每个数据帧的长度..
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
感谢您的时间......我很感激......
答案 0 :(得分:15)
试试这个:
myvec <- sapply(mylist, NROW)
length
给出data.frames的“奇数”结果,因为data.frames实际上是相同长度的向量列表。 length(data.frame)
为您提供基础列表的长度,即data.frame的列数。
NROW
和NCOL
很不错,因为它们倾向于为大多数对象提供“预期”结果。我以交互方式使用它们,但在编写稳定代码(例如程序,包)时可以回退到nrow
,ncol
和length
,因为它们避免了一些额外函数调用的开销
答案 1 :(得分:1)
lengths(mylist)
将返回列表中每个元素的长度。注意&#34;长度&#34; (复数)
答案 2 :(得分:0)
int q = list.Length;
int f = list.GetLength(0);
int e = list.GetLength(1);
Console.WriteLine("length of row :" + f);
Console.WriteLine("length of column :" + e);
Console.WriteLine("length of components in list :" + q);
如变量“ q”所示,可以找到数组中组件的总数或元素的长度。要查找数组或列表中的行数,请使用函数GetLength(),输入值为0;对于行数,我们可以使用相同的函数,其取值为1。