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

如何使用setDT将多语言变量合并为指定分类?

问题描述

我的数据集包含LanguageDSC语言变量,示例数据如下:

> dput(dt$LanguageDSC)
c("English", "English", "English", "Portuguese", "English", "English", 
"English", "English", "English", "Mandarin", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "Spanish", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "Spanish", "Spanish", "English", "English", "English", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English", "Arabic", "Spanish", 
"English", "English", "English", "English", "English", "English", 
"English", "English", "English", "English")

数据集共有约30种语言,我希望将其合并为以下分类:

  • English
  • Spanish
  • Cantonese
  • Mandarin
  • Vietnamese
  • Other(所有其他语言)

目前我使用如下代码,但仅能将语言分为'English'和'Other'两类,请问如何修改代码以包含上述其他4种语言?

setDT(dt)[!(LanguageDSC == "English"), LanguageDSC := "Other"]
解决方案

可以通过指定保留的目标语言列表,将不在列表中的语言统一替换为"Other"。用data.table的语法修改如下:

# 定义需要保留的语言分类
target_langs <- c("English", "Spanish", "Cantonese", "Mandarin", "Vietnamese")

# 替换不在目标列表中的语言为"Other"
setDT(dt)[!(LanguageDSC %in% target_langs), LanguageDSC := "Other"]

逻辑说明

  1. 先创建包含所有需保留语言的向量target_langs;
  2. 使用%in%运算符判断LanguageDSC的取值是否在目标列表内;
  3. 对不在列表中的行,将LanguageDSC赋值为"Other"。

处理后,原数据集中的Mandarin、Spanish会被保留,Portuguese、Arabic等其他语言都会被归类到"Other",完全符合需求。

如果习惯使用dplyr语法,也可以这样实现:

library(dplyr)

dt <- dt %>%
  mutate(LanguageDSC = if_else(LanguageDSC %in% target_langs, LanguageDSC, "Other"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:55:33