检查2列是否相等,如果相等,则在R中创建新的col

时间:2018-04-20 01:24:33

标签: r

如果

data$col1==data$col2 

然后

data$newcol==data$col1

ELSEIF

data$col3==data$col2

然后

data$newcol==data$col2

我希望行不要失去他们的身份

2 个答案:

答案 0 :(得分:1)

列必须为每一行都有一些值,即使您不想定义它。我想你可以尝试在这里使用ifelse

data$newcol = ifelse(data$col1 == data$col2, data$col1, NA)

如果给定行的col1不等于col2,则会将NA分配给新列。

答案 1 :(得分:0)

您可以使用dplyr::mutate()

尝试此方法
library(dplyr) # 0.7.4

set.seed(10)

dtf <- data_frame(
    col1 = sample(1:20, 10),
    col2 = sample(1:20, 10),
    col3 = sample(1:20, 10)
)


dtf %>%
    mutate(new_col = case_when(
               col1 == col2 ~ col1,
               col3 == col2 ~ col2,
               TRUE ~ NA_integer_
           ))