Как считать строки? - PullRequest
       9

Как считать строки?

5 голосов
/ 08 сентября 2011

У меня простой вопрос (по крайней мере, не для меня ..). Я был закончен со списком с несколькими фреймами данных различной длины. Я хочу посчитать длину каждого кадра данных ..

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 ]

15 голосов
/ 08 сентября 2011

Попробуйте это:

myvec <- sapply(mylist, NROW)

length дает «нечетные» результаты с data.frames, потому что data.frames действительно списки векторов одинаковой длины. length(data.frame) дает вам длину базового списка, который является количеством столбцов data.frame.

NROW и NCOL хороши тем, что имеют тенденцию давать "ожидаемые" результаты для большинства объектов. Я часто использую их в интерактивном режиме, но при написании стабильного кода (например, программ, пакетов) прибегаю к nrow, ncol и length, поскольку они позволяют избежать накладных расходов при выполнении нескольких дополнительных вызовов функций.

1 голос
/ 31 августа 2016
lengths(mylist) 

вернет длину каждого элемента в списке. Примечание "длина" (множественное число)

0 голосов
/ 19 октября 2018
    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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...