删除 R 中 tibble 列的嵌套列表内的重复项

问题描述 投票:0回答:1

我有一个 tibble,其中 1 个字符列包含我要解析的字符串。我想将解析结果存储在新的列表列中,每行中没有重复项。

小标题由以下代码创建:

my_tibble <- input_data_tibble |>
  group_by(tissue) |>
  summarize(id = str_flatten(id, ","))

我得到的输出看起来像这样 - 注意 id 类型是 chr:

my_tibble_bad <- tibble(
  tissue = c("Duodenum", "Ileum"),
  id = c("1, 2, 5, 5", "17, 17, 10, 10, 20, 20")
)
my_tibble_bad

我想要的输出看起来像这样

  • 通知id是一个列表列,每个列表包含数字,没有重复):
my_tibble_good <- tibble(
  tissue = c("Duodenum", "Ileum"),
  id = list(c(1, 5), c(17, 10, 20))
  )
my_tibble_good

有谁知道如何通过编辑原始代码或编辑原始代码的输出来获得我想要的结果

我尝试了几种选择,我能找到的最好的选择如下

test_string = "1, 1, 5, 5"
unique(as.numeric(gsub("\\D", "", unlist(strsplit(test_string, ",")))))

但是,当我尝试将其构建到代码中时,我得到了:

my_tibble_bad |>
  mutate(x = strsplit(id, ",")) |>
  select(!id)

添加取消列表后,我收到错误“

x
尺寸必须为 2 或 1,而不是 10。”:

my_tibble_bad |> mutate(x = unlist(strsplit(id, ","))) |> select(!id) 

r list duplicates stringr tibble
1个回答
0
投票

谢谢@MrFlick

这么简单,我不知道我怎么没看到

my_tibble <- input_data_tibble |>
  group_by(tissue) |>
  summarize(id = str_flatten(id, ","))

通过不制造问题来解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.