data.frame中的唯一单词列表

时间:2014-09-19 23:22:36

标签: r

我对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上有哪些最好的软件包来删除类似的拼写,复数等等。

2 个答案:

答案 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