You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R数据框列中提取唯一词汇为列表?求简便优雅的实现方法

简单提取数据框列中唯一词汇的方法

当然有更简单的办法!完全没必要动用tm包来做这么基础的操作,R原生函数和常用的tidy工具就能轻松搞定。给你分享几个最实用的方案:

  • 最直接的原生方法:unique()函数
    这应该是最优雅的解决方案了,一行代码就能得到你想要的结果,还会保留词汇第一次出现的顺序:

    DF <- data.frame(slNo = 1:5, names = c("get", "free", "new", "get", "new"))
    list <- unique(DF$names)
    # 输出结果:[1] "get"  "free" "new"
    

    unique()的作用就是提取向量中的唯一值,完全贴合你的需求,简洁又高效。

  • tidyverse风格方法:dplyr::distinct()
    如果你平时习惯用tidyverse系列工具,用distinct()配合pull()也很顺手,代码可读性强:

    library(dplyr)
    list <- DF %>% 
      distinct(names) %>%  # 筛选出names列的唯一行
      pull(names)           # 将列转换为向量
    

    这个方法在处理更复杂的数据框操作时扩展性更好,比如后续还要做其他数据清洗的话,能无缝衔接。

  • 补充:若不在意顺序可用factor()
    如果你对词汇的顺序没有要求,也可以先把列转为因子再提取水平值,不过结果会按字母排序:

    list <- levels(factor(DF$names))
    # 输出结果:[1] "free" "get"  "new"
    

总之,最推荐用unique(),完全满足你的需求,零额外依赖,代码极简。

内容的提问来源于stack exchange,提问作者Raghavan vmvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:22:47