【发布时间】:2020-03-30 22:04:44
【问题描述】:
假设我有这个数据框:
df <- data.frame(a=c(1,2))
df$b <- list(NULL, NULL)
注意sum(is.null(df$b) 是0,因为b 是一个列表,而不是一个向量。
我如何让它成为一个向量?我尝试了一些没有用的方法:
# does nothing
df <- df %>% flatten(b)
# removes column b!
df <- df %>% mutate(b=unlist(b))
# destroys df
df <- df %>% unnest(cols=c(b))
# doesn't run
df <- df %>% mutate_at(vars=c('b'), funs(unlist))
已经有severalquestions提出这个问题,但他们的解决方案对我不起作用。
我正在尝试从jsonlite 获取数据,类似于this question 的数据。
【问题讨论】:
-
您希望 data.frame 作为输出还是
b唯一的向量。在这里,不清楚预期,因为c(NULL, NULL)的长度不能为 2,它仍然是一个 NULL -
好问题。我想得到一个数据框,以
b作为一列。 -
如果您知道
b是列表列。df$b <- NA不行吗? -
@RonakShah 我不是特别具体,但有些 NULL 可能不是 NULL,我不想丢失它们。我应该有两个例子:一个都是 NULL,一个只有一些 NULL。