我对R很新,所以请耐心等待我。
我有一个字符向量,其中的列以不一致的格式描述疾病和诊断关键字。样品是:
flu
fever/feverish
fever cold
我正在寻找从中提取所有独特单词的最佳方法。我能想到的最好的过程是给我一个矢量矢量:
[[1]]
[[1]][[1]]
[1] "flu"
[[2]]
[[2]][[1]]
[1] "fever" "feverish"
...
我通过使用:
来实现这一目标split_words <- function(x){ strsplit(x, "[^[:alpha:]]+") }
lapply(diagnoses, split_words)
将此转换为单个向量或单列数据框的最佳方法是什么,以便我可以在此向量上运行unique
并删除重复项。
R上有哪些最好的软件包来删除类似的拼写,复数等等。
答案 0 :(得分:6)
您可以在unlist
之后使用strsplit
获取包含所有元素的向量,并使用unique
获取唯一元素。
x <- c("flu", "fever/feverish", "fever cold")
( ul <- unlist(strsplit(x, "\\s+|[[:punct:]]")) )
# [1] "flu" "fever" "feverish" "fever" "cold"
unique(ul)
# [1] "flu" "fever" "feverish" "cold"
答案 1 :(得分:1)
# > df
# illness
#1 flu
#2 fever/feverish
#3 fever cold
udf <- unlist(strsplit(df$illness, "[^[:alnum:]]"))
# [1] "flu" "fever" "feverish" "fever" "cold"
table(udf)
#udf
# cold fever feverish flu
# 1 2 1 1