Список в столбце data.frame - PullRequest
       0

Список в столбце data.frame

0 голосов
/ 18 апреля 2020

Пока у меня есть следующий data.frame, с начальным столбцом, заполненным установленными значениями:

df <- data.frame(N=seq(10, 100, by=10))

Теперь я хочу иметь здесь второй столбец, который бы быть list (или c()) целых чисел, так что результат вызова df будет следующим:

      N         I
1     10        2, 8, 1
2     20        4, 0, 99
..    ..        ..

Я попытался сделать следующее, где df <- data.frame(N=seq(10, 100, by=10), I=logical(10)), который помещает FALSE в каждом из столбцов. Но попытка проверить, что я хотел сделать с помощью df$I[df$N == 10] <- list(2, 8, 1), выдает ошибку:

количество заменяемых элементов не кратно длине замены

Редактировать: I также пытался использовать I(list(...)), чтобы список интерпретировался как есть, но была выдана та же ошибка.

1 Ответ

0 голосов
/ 18 апреля 2020

Мы можем создать list, добавив I в data.frame, а затем назначить, извлекая элемент list, который соответствует индексу, предоставленному логическим вектором

df <- data.frame(N=seq(10, 100, by=10), I= I(vector('list', 10)))
df$I[df$N == 10][[1]] <- list(2, 8, 1)
df
#     N       I
#1   10 2, 8, 1
#2   20        
#3   30        
#4   40        
#5   50        
#6   60        
#7   70        
#8   80        
#9   90        
#10 100        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...