如何计算行数?

时间:2011-09-07 20:34:08

标签: list r dataframe

我有一个简单的问题(至少不适合我......)。我已经以包含不同长度的多个数据帧的列表结束。我想计算每个数据帧的长度..

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

感谢您的时间......我很感激......

3 个答案:

答案 0 :(得分:15)

试试这个:

myvec <- sapply(mylist, NROW)

length给出data.frames的“奇数”结果,因为data.frames实际上是相同长度的向量列表。 length(data.frame)为您提供基础列表的长度,即data.frame的列数。

NROWNCOL很不错,因为它们倾向于为大多数对象提供“预期”结果。我以交互方式使用它们,但在编写稳定代码(例如程序,包)时可以回退到nrowncollength,因为它们避免了一些额外函数调用的开销

答案 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。