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

在R中对data.frame列制表时忽略元素顺序的实现方法

解决方案

核心思路是对每行的语言条目先过滤缺失值、再排序,将不同顺序的同语言组合转化为统一格式,之后再进行统计。

以下是具体实现代码:

library(tidyverse)

DATA <- read.table(header=T, text="
ID  lang1    lang2    lang3
1   spanish  english  NA
2   english  spanish  french
3   russian  english  NA
4   french   english  spanish
5   english  russian  NA
6   english  french   NA")

# 处理语言组合:过滤NA → 排序 → 拼接成统一字符串
combs <- DATA %>%
  rowwise() %>%
  mutate(
    # 提取当前行的语言列,过滤NA后排序
    sorted_lang = list(sort(na.omit(c(lang1, lang2, lang3)))),
    # 将排序后的语言拼接成字符串
    lang_comb = paste(sorted_lang, collapse = ", ")
  ) %>%
  ungroup()

# 统计结果
with(combs, table(lang_comb))

运行后输出的统计结果会自动合并同语言不同顺序的组合:

english, spanish     english, french english, russian english, french, spanish 
                    1                     1                     2                     2 

关键步骤解释

  • rowwise():让后续操作按行执行,确保每行的语言单独处理
  • na.omit(c(lang1, lang2, lang3)):去除当前行中的缺失值(NA)
  • sort():对语言名称按字母顺序排序,保证同组语言的顺序统一
  • paste(..., collapse = ", "):将排序后的语言拼接成一个字符串,作为统一的分类标识

内容的提问来源于stack exchange,提问作者Simon Harmel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:42:33