【问题标题】:removing rows on conditions from nested data frames从嵌套数据框中删除条件行
【发布时间】:2020-09-10 08:21:13
【问题描述】:

我对一些数据有一个有趣的问题。我试图在嵌套的 df 中保留同一天具有 source 'four' 的行。 这是模拟转换的附加示例。我的挑战是这需要在嵌套数据集级别发生并保持嵌套的 df。

数据示例:

date    source
30/12/2013  0
30/12/2013  2
30/12/2013  3
30/12/2013  7
29/12/2013  four
29/12/2013  1
29/12/2013  6

转换示例:

date    source
30/12/2013  0
30/12/2013  2
30/12/2013  3
30/12/2013  7
29/12/2013  four

代码示例:

library(tidyverse)
library(lubridate)


fl <- nycflights13::weather %>%   mutate(date = make_date(year, month, day)) %>% 
  mutate(source = sample(0:7, n(), replace = TRUE))   %>%  mutate(source = replace(source, source == 4, 'four'))
fl<- sample_frac(fl, 0.3)
fl<- fl %>% group_by(origin) %>% nest()

【问题讨论】:

    标签: r dplyr purrr


    【解决方案1】:

    如果当天存在'four' 值,您可以使用map 遍历每个数据并选择带有source == 'four' 的行,否则选择所有行。

    library(dplyr)
    fl %>% 
      mutate(data = purrr::map(data, ~.x %>% 
                                        group_by(day) %>% 
                                        filter(if(any(source == 'four'))
                                         source == 'four' else TRUE)))
    

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 2022-07-23
      • 2019-07-27
      • 1970-01-01
      • 2013-01-10
      • 2019-02-23
      • 2022-10-14
      相关资源
      最近更新 更多