main dataframe有一列“ passings”。它是主数据框中唯一的嵌套变量。内部有数据帧(an example a nested cell)。在嵌套单元格中,行数变化,但列数相同。列名称是“日期”和“标题”。我需要的是获取相应的日期,并将其作为新变量如果标题为“Законприйнято”(“通过的法律”-翻译)放在主数据框中。
我是编码方面的新手。 感谢您的帮助!
答案 0 :(得分:1)
这里是一个选项,其中我们用list
遍历“通过” map
列(根据图像,它是2列list
中的data.frame
),filter
“标题”为“Законприйнято”的行(假设每行仅一个值),pull
“日期”列在原始行中创建新列“日期”数据集
library(dplyr)
library(purrr)
df1 %>%
mutate(date = map_chr(passings, ~ .x %>%
filter(title == "Закон прийнято") %>%
pull(date)))
# id passed passings date
#1 54949 TRUE 2015-06-10, 2015-06-08, abcb, Закон прийнято 2015-06-08
#2 55009 TRUE 2015-06-10, 2015-09-08, bcb, Закон прийнято 2015-09-08
注意:它按预期工作。
df1 <- structure(list(id = c(54949, 55009), passed = c(TRUE, TRUE),
passings = list(structure(list(date = c("2015-06-10", "2015-06-08"
), title = c("abcb", "Закон прийнято")), class = "data.frame", row.names = c(NA,
-2L)), structure(list(date = c("2015-06-10", "2015-09-08"
), title = c("bcb", "Закон прийнято")), class = "data.frame", row.names = c(NA,
-2L)))), row.names = c(NA, -2L), class = "data.frame")