Сохранить переменную, удаляющую элемент из списка R, который находится внутри другого списка - PullRequest
3 голосов
/ 18 октября 2019

У меня есть список из 149 элементов. Каждый элемент этого списка является списком. Каждый из этого списка имеет фрейм данных. Каждый кадр данных имеет 11 столбцов. Каждый столбец имеет 366 значений. Как сохранить эти переменные и их структуру, удалив только последнее значение 336?

Я попытался связать значение NULL с последним значением, но получил сообщение об ошибке

 for (i in 1:149){
     for (j in 1:11){
              x[[i]][[1]][[j]][[366]]   <- NULL
      } 
 }

Iожидать, что это будет работать, но это не сработало: Ошибка в x [[...]] <- m: замена имеет нулевую длину </p>

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Пакет purrr может быть вашим другом со списками. Это удалит последнюю строку из каждого data.frame, сохраненного на уровне 2 списка.

library(purrr)

x2 <- map_depth(x, 2, ~ head(., -1))
1 голос
/ 18 октября 2019

Вы были близки. x[[i]][[1]][[j]][[366]] попытается получить доступ к 366-му столбцу фрейма данных, а не к 366-й строке. Насколько я знаю, использование трюка <- NULL также не работает для строк.

for (i in 1:149){
     for (j in 1:11){
              x[[i]][[1]] <- x[[i]][[1]][-366,]
      } 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...