我需要创建一个新列(col.4(,该列填充了现有列(col.2(中的值,这些值被选为原始相邻列(col.1(的条件,并且在新的(更长的(相邻列(col.3(中使用相同的值。如何实现这一点?数据如下所示:
col.1 col.2 col.3 col.4
1 A 1 A
2 B 2 B
3 C 2 B
4 D 3 C
- - 1 A
- - 4 D
- - 3 C
- - 4 D
一种选择是使用"col.3"作为索引(假设它是数字列(
df1$col.4 <- with(df1, col.2[col.3])
df1$col.4
#[1] "A" "B" "B" "C" "A" "D" "C" "D"
数据
df1 <- structure(list(col.1 = c("1", "2", "3", "4", "-", "-", "-", "-"
), col.2 = c("A", "B", "C", "D", "-", "-", "-", "-"), col.3 = c(1L,
2L, 2L, 3L, 1L, 4L, 3L, 4L), col.4 = c("A", "B", "B", "C", "A",
"D", "C", "D")), class = "data.frame", row.names = c(NA, -8L))