我有一个 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
我想要的输出看起来像这样
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)
谢谢@MrFlick
这么简单,我不知道我怎么没看到
my_tibble <- input_data_tibble |>
group_by(tissue) |>
summarize(id = str_flatten(id, ","))
通过不制造问题来解决问题。