【问题标题】:Store setdiff results in dataframe cell将 setdiff 结果存储在数据框单元格中
【发布时间】:2020-07-11 06:00:54
【问题描述】:

这是我的例子:

library(dplyr)
my_df <- data.frame( col_1 = I(list(c(1,2), 1 )), col_2 = c(1,2))
my_df <- my_df %>% rowwise(diff = setdiff(col_1, col_2))

它会产生一个错误:

Error in rowwise(., diff = setdiff(col_1, col_2)) : 
  unused argument (diff = setdiff(col_1, col_2))

出了什么问题以及如何解决?有什么想法吗?

更新:我的错,我只是忘记添加mutate

my_df <- data.frame( col_1 = I(list(c(1,2), 1 )), col_2 = c(1,2))
my_df <- my_df %>% rowwise() %>% mutate(diff = setdiff(col_1, col_2))

【问题讨论】:

    标签: r dplyr set-difference rowwise


    【解决方案1】:

    一个选项是map2,因为两列都是list

    library(dplyr)
    library(purrr)
    my_df %>%
         mutate(diff = map2(col_1, col_2, setdiff))
    

    或者如果我们需要使用rowwise

    my_df %>%
        rowwise %>% 
        mutate(diff = setdiff(col_1, col_2))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 2018-12-30
      • 2021-07-28
      • 2016-08-24
      • 1970-01-01
      • 2023-02-08
      相关资源
      最近更新 更多