У меня есть фрейм данных (импортированный из листа Excel, где я написал список строк строка за строкой) и хочу преобразовать строки в список векторов, где каждый вектор содержит значения пропущенных ячеек для этой строки :
например:
#Sample data frame
dfX <- data.frame(C0 = c(1,2,3),
C1 = c("Apple","Apple","Pear"),
C2 = c("Banana","Orange", "Lemon"),
C3 = c("Pear","Melon", ""))
Что будет использовано для создания следующего списка:
myList = list(c("Apple","Banana", "Pear"),
c("Apple","Orange", "Melon"),
c("Pear","Lemon"))
Обратите внимание, что третий вектор усекается до двух элементов, поскольку ячейка содержит пустую строку. Также обратите внимание, что индекс (C0) упал.
Я видел несколько примеров, которые преобразуют фрейм данных в матрицу и используют функцию разделения для вставки результатов в глобальную среду, например,
list2env(setNames(split(as.matrix(dfX),
row(dfX)), paste0("Row",1:3)),
envir=.GlobalEnv)
Но мне было интересно, есть ли (а) более новая функция tidyverse для обработки этого и (б) способ заполнить список прямо (позже я хочу применить функцию к этому списку). Также, если возможно, захотите обработать пропущенные значения по пути в список!