我正在尝试从嵌套的tibble中提取数据。在外部字节内,并非所有字节都可以存在或完整。如果列不存在,我希望返回0。
df <- tibble(a = tibble(iris),
b = tibble(iris[1:2]),
c = NULL)
现在我想从每个嵌套的tibble中提取列'species',如果没有数据可用,则生成的列将填充NA。因此结果等于:
tibble(a_s = iris$Species,
b_s = NA,
c_s = NA)
有什么方法可以做到这一点吗?
我天真地试着:
transmute(df, a_s = a$species,
b_s = b$species,
c_s = c$species)
这当然只适用于a_s
,为b_s
生成警告,并为c_s
抛出错误。
我尝试创建一个帮助函数来评估每一列的存在,但这对嵌套的 Dataframe 不起作用。有什么解决办法吗?
UPDATE:为了清楚起见,我总是希望按照指定的方式生成输出,而tibble c可能存在,也可能不存在。
1条答案
按热度按时间ct3nt3jp1#
在
ifelse
中使用grepl
检查 Species,并使用do.call
获得最终的tibble
。