gpt4 book ai didi

按行 flatten_chr() 或 unlist() 将字符串转换为向量

转载 作者:行者123 更新时间:2023-12-05 09:01:43 25 4
gpt4 key购买 nike

我正在使用包含诊断编码的数据集,我正在尝试查看 follow_up_code 是否在 discharge_codes 中。遗憾的是,放电代码是以字符串形式提供的,而不是向量。

mre <- tribble(
~patient_id, ~discharge_codes, ~follow_up_code,
1234 , "A_B_C" , "A",
4567 , "D_E_F" , "C",
7890. , "A_C_E". , "E"
)

我尝试将 flatten_chr()str_split() 一起使用,以允许我搜索 follow_up_code %in% discharge_codes,但这会变平discharge_codes 完全(而不是患者),并且使用 rowwise() %>% mutate(... flatten_chr()) 错误为“.x 必须是一个列表,不是字符向量”。

我觉得我一定遗漏了一些东西,无论是在我采用的方法中,还是有更直接的方法来实现这一点?

最佳答案

您可以将文本列转换为字符向量,然后查看代码是否在该向量中。这样做的好处是,如果需要,discharge_codes 现在可用于其他用途。

library(dplyr)
library(purrr)
library(stringr)

mre %>%
mutate(discharge_codes = str_split(discharge_codes, "_"),
match = map2_lgl(discharge_codes, follow_up_code, ~ .y %in% .x))

您可以看到 discharge_codes 现在是一个包含字符向量的列表列。

# A tibble: 3 x 4
patient_id discharge_codes follow_up_code match
<dbl> <list> <chr> <lgl>
1 1234 <chr [3]> A TRUE
2 4567 <chr [3]> C FALSE
3 7890 <chr [3]> E TRUE

关于按行 flatten_chr() 或 unlist() 将字符串转换为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72913969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com