如果
data$col1==data$col2
然后
data$newcol==data$col1
ELSEIF
data$col3==data$col2
然后
data$newcol==data$col2
我希望行不要失去他们的身份
答案 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_
))