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

R语言如何拆分IMDB数据集|分隔genres列并生成0-1哑变量列

方法1:基于你已写好的唯一类型列表实现(基础R语法)

你已经提取到了所有唯一类型的列表li,接下来直接遍历每个类型,逐列判断赋值即可:

for (genre in li) {
  # grepl匹配到对应类型返回TRUE,转整数就是1,没匹配到返回FALSE转整数就是0
  # fixed=TRUE避免类型名含特殊字符时正则匹配出错,ignore.case=TRUE适配tokenize_words自动转小写的特性
  movie_clean[[genre]] <- as.integer(grepl(genre, movie_clean$genres, fixed = TRUE, ignore.case = TRUE))
}

# 提取所有生成的类型哑变量列查看结果
genre_result <- movie_clean[, unlist(li)]
head(genre_result)

方法2:更简洁的tidyverse方案(无需提前提取类型列表)

如果用tidyverse生态的函数可以一步完成拆分、转宽表的操作,代码可读性更高:

library(tidyverse)

genre_result <- movie_clean %>%
  # 按|拆分genres,每个类型单独占一行
  separate_rows(genres, sep = "\\|") %>%
  # 标记存在的类型为1
  mutate(val = 1) %>%
  # 转宽表,不存在的类型自动填充为0
  pivot_wider(names_from = genres, values_from = val, values_fill = 0)

运行后得到的genre_result就是你需要的、每个类型对应1/0标记的数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:42:02