我有一些数据
structure(list(Factor = c(0L, 1L, 0L, 1L, 1L, 0L, 1L), Col_A = c(45L,
23L, 35L, 43L, 42L, 23L, 11L), Col_B = c(85L, 67L, 55L, 40L,
27L, 85L, 12L), New_Column = c(45L, 67L, 35L, 40L, 27L, 23L,
12L)), class = "data.frame", row.names = c(NA, -7L))
假设第4列不存在。我需要编写一个基于Factor
列中的值的脚本,该脚本将从Col_A
或Col_B
中获取一个值并将其放入New_Column
中。如果Factor
中的值为0,则应采用Col_A
中的值,因此第一行New_Column
中的值为45。
答案 0 :(得分:0)
基本解决方案:
df$New_Column <- ifelse(df$Factor == 0, df$Col_A, df$Col_B)
答案 1 :(得分:0)
我们可以使用row/column
索引来获取值
df1$New_Column <- df1[2:3][cbind(seq_len(nrow(df1)), df1$Factor + 1)]