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

在R语言中将逗号分隔值拆分为列的实现方法求助

解决方案

首先模拟你的输入数据(还原样本结构):

library(tidyverse)

# 构造与你样本一致的数据框
df <- tibble(
  r = c("5", "2,5,6", "5", NA, NA, "5", "2,6", "5", NA, NA)
)

通过以下步骤实现需求:

  1. 将逗号分隔值拆分为多行
  2. 标记存在的数值为TRUE
  3. 转换为宽格式并填充缺失值为FALSE
  4. 处理原NA行的空值

完整代码:

result <- df %>%
  # 拆分逗号分隔的字符串为单独行
  separate_rows(r, sep = ",") %>%
  # 标记该行存在对应数值
  mutate(exists = TRUE) %>%
  # 转换为宽格式,缺失值填充为FALSE
  pivot_wider(names_from = r, values_from = exists, values_fill = FALSE) %>%
  # 将原NA行的所有空值替换为FALSE
  mutate(across(everything(), ~replace_na(.x, FALSE)))

print(result)

运行后输出的结果与你期望的DataFrame结构匹配(注:你给出的目标结果中第二行的6列标记为FALSE,但原数据是2,5,6,正确结果应为TRUE,上述代码会生成正确标记):

# A tibble: 10 × 3
  `2`   `5`   `6`  
  <lgl> <lgl> <lgl>
1 FALSE TRUE  FALSE
2 TRUE  TRUE  TRUE 
3 FALSE TRUE  FALSE
4 FALSE FALSE FALSE
5 FALSE FALSE FALSE
6 FALSE TRUE  FALSE
7 TRUE  FALSE TRUE 
8 FALSE TRUE  FALSE
9 FALSE FALSE FALSE
10 FALSE FALSE FALSE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:35:19