Конвертировать каждую строку кадра данных в новый список в R - PullRequest
0 голосов
/ 24 апреля 2019

У меня ниже образец input data-

> df <- data.frame(a=c(1,2,9),b=c(3,4,5),c=c(2,6,7))
> df
  a b c
1 1 3 2
2 2 4 6
3 9 5 7

Я пытаюсь преобразовать rach row в отдельный список.

Моя попытка-

> apply(df,1,as.list)

Приведенное выше решение преобразует каждый row в sublists.Но я ищу 3 отдельных списка в этом случае.

nrow(df) = no. of lists

Желаемый вывод -

> list1
$a
[1] 1

$b
[1] 3

$c
[1] 2

> list2
$a
[1] 2

$b
[1] 4

$c
[1] 6

> list3
$a
[1] 9

$b
[1] 5

$c
[1] 7

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете использовать by и as.list

out <- by(df, 1:nrow(df), as.list)
out
#1:nrow(df): 1
#$a
#[1] 1
#
#$b
#[1] 3

#$c
#[1] 2

#------------------------------------------------------------------------------ 
#1:nrow(df): 2
#$a
#[1] 2

#$b
#[1] 4

#$c
#[1] 6

#------------------------------------------------------------------------------
#1:nrow(df): 3
#$a
#[1] 9

#$b
#[1] 5

#$c
#[1] 7

. Это создает объект класса by.Таким образом, вы можете позвонить unclass(out) в конце.

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