我有一个dataframe
,字段为list()
,但是有时它具有空值,我在查询中尝试了replace(is.null(.), 0)
,但是什么也没有发生。
我要:
list(date=exactly date in the rows, sales=0)
代替火车这是我的数据框: https://pasteboard.co/IsclvYT.png
数据框内的内容: https://pasteboard.co/IscmiwV.png
谢谢...
答案 0 :(得分:2)
由于“火车”是list
,因此我们可以遍历list
并将NULL
元素替换为0
library(tidyverse)
df1 %>%
mutate(train = map(train, ~ replace(.x, is.null(.x), 0)))
根据评论,OP希望将NULL
元素替换为来自“测试”的相应“日期”
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