data.frame中的唯一单词列表
我对R很陌生,所以请对我耐心点 我有一个带有列的字符向量,该列以不一致的格式描述疾病和诊断关键词。样本包括:data.frame中的唯一单词列表,r,R,我对R很陌生,所以请对我耐心点 我有一个带有列的字符向量,该列以不一致的格式描述疾病和诊断关键词。样本包括: flu fever/feverish fever cold 我正在寻找从中提取所有独特单词的最佳方法。到目前为止,我能想出的最好的方法是给我一个向量向量: [[1]] [[1]][[1]] [1] "flu" [[2]] [[2]][[1]] [1] "fever" "feverish" ... 我通过以下方式实现这一目标: split_words <- function(x
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)
split_words您可以在strsplit
之后使用unlist
来获取包含所有元素的向量,并使用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"
x#>df
#疾病
#1流感
#2发烧/发烧
#3发烧感冒
udf全部保证小写?拆分并丢弃任何空格或标点符号?你确定“/”或“-”总是不相关的吗?例如,格林-巴利综合征呢?我用“-”和“/”检查了所有术语,实际的regexp有点复杂。但我想简化这个问题。在进入这一阶段之前,我在所有疾病列表中排名较低且独一无二。按选择性标点分开。拆分时间[,;:]
不要拆分时间[-/]
# > 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