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

R语言如何按指定行号为数据框新增分类列并赋值A、B、C

按行号给R数据框分配分类值的解决方法

基础R原生方案(推荐,性能最优)

无需加载第三方包,利用R原生向量索引特性直接赋值,16000条数据可瞬间处理完成,效率远高于循环写法。
代码示例:

# 1. 准备示例数据,将原始向量转为数据框以支持新增列
df <- data.frame(value = 1:10)
A <- c(3, 9)
B <- c(2, 6, 8)
C <- c(1, 4, 5, 7, 10)

# 2. 新增分类列并按行号赋值
df$category <- NA_character_ # 初始化字符类型空列
df$category[A] <- "A"
df$category[B] <- "B"
df$category[C] <- "C"

运行后即可得到符合要求的分类列,按行号匹配对应分类值。

Tidyverse风格方案(适合dplyr使用者)

如果日常习惯用dplyr处理数据,可以用case_when()结合行号判断实现:

library(dplyr)

df <- df %>%
  mutate(
    category = case_when(
      row_number() %in% A ~ "A",
      row_number() %in% B ~ "B",
      row_number() %in% C ~ "C"
    )
  )

注意事项

  • 需确保A、B、C三个行号向量无重复值、无超出数据框总行数的数值,否则对应行的分类会为NA
  • 如果存在行号同时属于多个向量的情况,优先级由赋值顺序决定,先赋值的分类会被后赋值的覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:04