从数据框中,我正在读取包含医疗设备提交编号的列。理想情况下,一个医疗设备应该只有一个号码。然而,在某些情况下,存在具有多个数字的医疗设备。我想创建一个包含多个数字的列表。
因此,现在,当我遍历数据帧(deviceRecallsReports)列"k_numbers“时,我得到了以下输出:
[1] "K020386"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "K082829"
[1] "K043520"
[1] "c(\"K040738\", \"K061414\")"
[1] "K080391"
[1] "K991569"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "K063454"
[1] "K053240"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "K043520"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "K141967"
[1] "c(\"K032509\", \"K093308\", \"K082566\")"
[1] "K991569"
[1] "K013931"
for (row in 1:nrow(deviceRecallsReports))
{
knum <- deviceRecallsReports[row, "k_numbers"]
print(paste(knum))
}
只有一个数字的行,比如"K020386“或"K991569”就可以了。但是对于假设列表"c(\"K032509\",\"K093308\",\"K082566\")“中的多个数字的其余行,我希望创建一个实际的R向量或列表。所以我想要一个向量/列表,应该是:("K032509","K093308","K082566")。
我现在不确定如何剥离或取消列出这个。
发布于 2019-08-17 02:19:24
如果deviceCallreports
是一个普通的data.frame,而你的列k_numbers
是一个普通的字符列,我们可以解析它。唯一的问题是有两种不同类型的条目:普通文本条目和分离的向量。因此,尝试以下操作:
my_parse <- function(s) {
tryCatch({ eval(parse(text=s)) }, error = function(e) { s })
}
# either
knum <- my_parse(deviceRecallsReports[row, "k_numbers"])
# or
sapply(deviceRecallsReports$k_numbers, my_parse)
发布于 2019-08-17 02:20:34
不确定实际的数据帧是如何构造的,但我假设它是这样的
library (tidyverse)
df <- tibble(
med_device_string = c(
"K020386",
"c(\"K032509\", \"K093308\", \"K082566\")",
"K082829",
"K043520",
"c(\"K040738\", \"K061414\")",
"K080391",
"K991569",
"c(\"K032509\", \"K093308\", \"K082566\")"
)
) %>%
rowid_to_column("med_device_number")
df %>%
mutate(med_device_string = str_remove_all(med_device_string, 'c\\(\\"|\\"\\)')) %>%
mutate(med_device_list = str_split(med_device_string, pattern = '\\", \\"')) %>%
select(-med_device_string)
新列将包含单个字符串的列表。在此之后,您始终可以调用unnest
来为每个医疗设备提交和设备代码获取一行。
发布于 2019-08-17 02:22:35
试一试
purrr::map(deviceRecallsReports$k_numbers, ~if(grepl("^c", .x)) eval(parse(text = .x)) else .x)
https://stackoverflow.com/questions/57529009
复制相似问题