【问题标题】:How to remove duplicate values within a list element in R如何删除R中列表元素中的重复值
【发布时间】:2021-09-17 19:22:15
【问题描述】:

我需要删除 R 中列表元素中的重复值。

在下面的表示中,这意味着我需要删除 [[4]] 中的第二个“A”。

我曾尝试使用unique(),但此函数会删除整个元素(下面的reprex 中的[[3]])。

我一直找不到任何 SO 问题/答案来解决我的问题。

最小的代表:

df <- data.frame(
  a=1:4,
  b=I(list("A", "A", c("A", "B"), c("A", "B", "A"))))

# I need to remove the second "A" in [[4]] 

df$b
#> [[1]]
#> [1] "A"
#> 
#> [[2]]
#> [1] "A"
#> 
#> [[3]]
#> [1] "A" "B"
#> 
#> [[4]]
#> [1] "A" "B" "A"

# unique does not work because it removes [[3]]
unique(df$b)
#> [[1]]
#> [1] "A"
#> 
#> [[2]]
#> [1] "A" "B"
#> 
#> [[3]]
#> [1] "A" "B" "A"

reprex package (v2.0.0) 于 2021-07-07 创建

【问题讨论】:

    标签: r list


    【解决方案1】:

    您需要将unique() 应用于df$b元素,而不是df$b 本身。

    df <- data.frame(
      a=1:4,
      b=I(list("A", "A", c("A", "B"), c("A", "B", "A"))))
    
    df$b <- lapply(df$b, unique)
    df
    #>   a    b
    #> 1 1    A
    #> 2 2    A
    #> 3 3 A, B
    #> 4 4 A, B
    

    reprex package (v2.0.0) 于 2021-07-07 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-19
      • 2017-09-03
      • 2019-11-09
      • 2018-05-02
      • 2014-07-06
      • 2020-08-02
      • 1970-01-01
      相关资源
      最近更新 更多