【发布时间】:2021-12-29 10:37:01
【问题描述】:
我正在尝试通过描述符对一组期刊进行聚类,并且我一直在考虑将描述符转换为二进制向量,而不是使用字符串距离(到目前为止我一直在使用)以避免匹配“催化”等问题" 和 "分析" 或为(不希望的)部分匹配匹配长字符串。
为了实现这个想法,我已将期刊可能出现的每个描述符按字母顺序分成一组 266 个字符串 (isolated_cat)。
dput(head(isolated_cat))
c("Accounting", "AcousticsUltrasonics", "AdvancedSpecializedNursing",
"AerospaceEngineering", "Aging", "AgriculturalBiologicalSciences"
)
对于我的数据框中的每个期刊,我都有一个带有一组描述符的列,例如
journals_STEM$Categories4dist[1]
[1] "Biomaterials ElectronicOpticalMagneticMaterials Energy MaterialsChemistry SurfacesCoatingsFilms"
我期望的输出是一个 266 长的向量,其中 isolated_cat 中的每个类别都有 0 和 1,表示描述符是否包含该词(之后我想测试 PCA 和不同的聚类方法来将期刊分成组) .
首先,我试过了
as.numeric(isolated_cat %in% aux$Categories4dist[i])
显然(我后来注意到)仅适用于由单个类别定义的期刊。我一直在尝试不同的 grep 组合,但我并不走运。有没有直接的方法可以实现这一目标?到目前为止,我发现的唯一解决方案太复杂了,我认为我遗漏了一些明显的东西。
【问题讨论】: