根据一列中另一列的值创建新列

时间:2019-08-20 07:07:55

标签: r

我有一些数据

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_ACol_B中获取一个值并将其放入New_Column中。如果Factor中的值为0,则应采用Col_A中的值,因此第一行New_Column中的值为45。

2 个答案:

答案 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)]