Заменить значение NULL из списка в кадре данных R
У меня есть dataframe
с полем как list()
, но иногда он имеет нулевые значения, я пытался replace(is.null(.), 0)
в моем запросе ничего не произошло.
я бы хотел:
- заменить поезд на
list(date=exactly date in the rows, sales=0)
- отображение train.sales
вот мой фрейм данных: https://pasteboard.co/IsclvYT.png
содержимое внутри фрейма данных: https://pasteboard.co/IscmiwV.png
Спасибо...
1 ответ
As the 'train' is a list
, we can loop through the list
и заменить NULL
элементы с 0
library(tidyverse)
df1 %>%
mutate(train = map(train, ~ replace(.x, is.null(.x), 0)))
Based on the comments, the OP wanted to replace the NULL
elements with the corresponding 'date' from 'test'
df1 %>%
mutate(train = map2(train, test, ~ if(is.null(.x)) list(date = .y$date, sales = rep(0, length(.y$sales))) else .x))
Или используя base R
i1 <- sapply(df1$train, is.null)
df1$train[i1] <- 0