我搜索了一会儿试图解决这个问题,但遗憾的是找不到答案。
在我的数据框中,最后一列包含与列名匹配的字符串。我想创建另一列,每列返回(复制)与该列名匹配的值。
例如,说我的数据是:
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并返回与该列名匹配的同一行的值。
这显然是我数据的一个非常简化的版本,这就是为什么我想自动化它。 我真的很感激任何帮助:)
答案 0 :(得分:0)
我们可以使用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