Могу ли я использовать списки в R как прокси для фрейма данных, имеющего неодинаковое количество столбцов? - PullRequest
1 голос
/ 18 февраля 2011

Насколько я понимаю, фрейм данных в R должен быть прямоугольным.Невозможно иметь фрейм данных с неравной длиной столбца.Могу ли я использовать list s в R для достижения этой цели?Какие у него плюсы и минусы для такого подхода?

1 Ответ

2 голосов
/ 18 февраля 2011

Вы можете использовать списки для хранения всего, что вы хотите, даже фреймы данных или другие списки! Вы действительно можете назначить векторы различной длины или даже совершенно разные объекты. Он предоставляет вам те же функциональные возможности, что и кадры данных, которые можно индексировать с помощью знака доллара:

> fooList <- list(a=1:12, b=1:11, c=1:10)
> fooList$a
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
> fooDF <- data.frame(a=1:10, b=1:10, c=1:10)
> fooDF$a
 [1]  1  2  3  4  5  6  7  8  9 10

Но числовое индексирование отличается:

> fooList[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
> fooDF[,1]
 [1]  1  2  3  4  5  6  7  8  9 10

, а также структура и способ печати:

> fooList


$a
 [1]  1  2  3  4  5  6  7  8  9 10 11 12

$b
 [1]  1  2  3  4  5  6  7  8  9 10 11

$c
 [1]  1  2  3  4  5  6  7  8  9 10

> fooDF
    a  b  c
1   1  1  1
2   2  2  2
3   3  3  3
4   4  4  4
5   5  5  5
6   6  6  6
7   7  7  7
8   8  8  8
9   9  9  9
10 10 10 10

Проще говоря, фрейм данных - это матрица, а список - больше контейнера.

Список предназначен для того, чтобы хранить все виды вещей вместе, а фрейм данных - это обычный формат данных (тема / регистр для каждой строки и переменная для каждого столбца). Он используется во многих анализах, позволяет индексировать баллы по предмету, может быть более легко преобразован и другими вещами.

Однако, если у вас столбцы неравной длины, я сомневаюсь, что каждая строка в ваших данных напоминает тему / случай. В этом случае, я полагаю, вам не нужно много функциональности данных.

Если каждая строка похожа на тему / случай, вам следует использовать NA для любых пропущенных значений и использовать фрейм данных.

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