我搜索了一段时间以尝试解决此问题,但不幸的是找不到答案。
在我的数据框中,最后一列包含与列名称匹配的字符串。我想创建另一列,该列为每一行返回(复制)与该列名称匹配的值。
例如,假设我的数据是:
col1 <- c(1, 4, 6, 0, 5)
col2 <- c(4, 6, 7, 8, 6)
col3 <- c(0, 4, 2, 2, 1)
col4 <- c("col1", "col1", "col2", "col3", "col1")
df <- data.frame(col1, col2, col3, col4)
我想实现的是col5,它从每一行复制相关的单元格:
col1 col2 col3 col4 col5
1 4 0 col1 1
4 6 4 col1 4
6 7 2 col2 7
0 8 2 col3 2
5 6 1 col1 5
基本上,它查看col4并从与该列名称匹配的同一行中返回值。
显然,这是我的数据的非常简化的版本,这就是为什么我想使其自动化。我真的很感谢您的帮助:)
我们可以使用row/col
索引从数据集中提取元素以创建“ col5”。
df$col5 <- df[-4][cbind(1:nrow(df), match(as.character(df$col4), colnames(df)))]
df$col5
#[1] 1 4 7 2 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句