Как деконструировать список и добавить его во фрейм данных в виде строки в r - PullRequest
1 голос
/ 15 октября 2019

Я получил некоторые данные в виде очень извилистой таблицы Excel и смог перестроить ее в виде списка из n объектов, каждый из которых содержит y массивов (назовем их a, b, c). некоторые не содержат все массивы (a = c ("1", "2"), b = NULL, c = c ("A", "B", C ")

mylist <- list (a = c("1","2"), b = NULL, c = c("A","B","C"))

Я хочу взять первый элемент из каждого массива и добавить его в строку во фрейме данных следующим образом:

df
[1] "1", NULL, "A"

Я пытался использовать функцию list2env, но когда дело доходит до NULL, это для некоторыхПричина не может создать переменную и добавить ее к фрейму данных.

Также я буду иметь дело с более длинными и длинными объектами и хотел бы найти способ добавить его автоматически - если я использую функцию list2env, у меня естьдобавить их вручную.

Есть идеи?

Спасибо!

1 Ответ

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

Вы можете использовать lapply, а затем rbind перенастроенный список и преобразовать его в data.frame, используя as.data.frame, например:

(df <- as.data.frame(rbind(lapply(mylist, "[[", 1))))
#  a    b c
#1 1 NULL A

Если все в порядке для замены NULLс "NULL" или NA вы можете использовать:

sapply(replace(mylist, mylist=="NULL", "NULL"), "[[", 1)
#     a      b      c 
#   "1" "NULL"    "A" 

sapply(replace(mylist, mylist=="NULL", NA), "[[", 1)
#  a   b   c 
#"1"  NA "A" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...