【问题标题】:Unnest in R conditional on the cell's contentR 中的 Unnest 取决于单元格的内容
【发布时间】:2019-11-18 21:52:08
【问题描述】:

main dataframe 有一列“传递”。它是主数据框中唯一的嵌套变量。在其中,有数据框(an example a nested cell)。在嵌套单元格中,行数不同,但列数是相同的。列名称是“日期”和“标题”。我需要的是获取一个相应的日期并将其作为一个新变量放入主数据框中.

我是编码新手。 我会感谢你的帮助!

dataframe an example of a dataframe within a nested cell

【问题讨论】:

  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。 (数据图片不可复制)
  • 感谢您的评论。下一次,我会这样做。这一次,我真的不知道该怎么做。 @akrun 在下面发布了可重现的示例

标签: r nested unnest


【解决方案1】:

这是一个选项,我们用map 循环遍历'passings'list 列(根据图像,这将是2 列data.framelist),filter 行'title' 是“Закон прийнято”(假设每行只有一个值)和 pull 'date' 列在原始数据集中创建一个新列 'date'

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")

【讨论】:

  • 谢谢!有效!我很感激!现在,我将尝试了解它的实际工作原理。
  • @YuliiaZhaha 谢谢。 T
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 2020-09-13
相关资源
最近更新 更多