r - 为特定行赋值 (R)
问题描述
我有 16k + 项目的 df。我想为这些项目分配值 A、B 和 C。
示例:我有以下带有 10 个唯一项目的 df
df <- c(1:10)
现在我有三个单独的向量(A、B、C),其中包含具有值 A、B 或 C 的 df 的行号。
A <- c(3, 9)
B <- c(2, 6, 8)
C <- c(1, 4, 5, 7, 10)
现在我想向 df 添加一个新的类别列,并根据我拥有的三个向量中的行号分配值 A、B 和 C。例如,我想将值 C 分配给 df 的第 1、4、5、7 和 10 行。
我尝试使用 for 循环和 if 语句来将向量的值与 df 的行号相匹配,但我没有成功。有人可以帮忙吗?
解决方案
这是分配新列的一种方法。
创建数据框和向量列表:
df <- data.frame(n=1:10)
dat <- list( A=c(3, 9), B=c(2, 6, 8), C=c(1, 4, 5, 7, 10) )
将数据放在所需的行中:
df$new[unlist(dat)] <- sub("[0-9].*$","",names(unlist(dat)))
结果:
df
n new
1 1 C
2 2 B
3 3 A
4 4 C
5 5 C
6 6 B
7 7 C
8 8 B
9 9 A
10 10 C
推荐阅读
- tsql - 如何重新组合两个查询以仅具有一个共同结果?
- ssl - 无法在域上应用letsencrypt SSL
- excel - 谁能解释FC的输出?
- android - NDK 解析结果:项目设置:Gradle 模型版本=5.4.1,NDK 版本为 UNKNOWN 错误
- powerbi - 如何在 RELATEDTABLE 列的筛选行上使用 DATEDIFF() 创建计算列?
- python-3.x - 链接到另一个 python C 扩展
- php - 如何对一个查询使用多个 if
- python - 使用稀疏向量进行查询的 Elasticsearch 运行时错误
- webpack - 如何在不使用 webpack 生成新块的情况下拆分 webpack 条目
- android-studio - 在没有白色背景的android studio中显示imageview