根据条件语句从其他列填充R中的新列

时间:2017-02-15 19:36:21

标签: r if-statement conditional

我在R中有一个数据框(data.frame(test)),其中包含以下信息。

if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) {
test$Newcolumn = test$column1
} else {
  test$NewColumn = test$column2
}

我正在尝试根据第1列的条件语句创建一个由第2列和第3列中的数据填充的新列。

我似乎无法弄清楚如何编写适当的条件。

Columns1 | Column2 | Column3 | NewColumn 
1 | 11 | 33 | 11
3 | 34 | 56 | 33
4 | 24 | 23 | 23
5 | 74 | 64 | 64
3 | 45 | 52 | 45
2 | 54 | 53 | 54
1 | 76 | 92 | 76

最终结果应如下所示:

domain.com/search?user_search_terms

2 个答案:

答案 0 :(得分:2)

使用dplyr,假设mydf是您的数据框:

mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res

我认为您的问题中存在拼写错误,如果符合条件,您打算将column2值分配给newColumn

答案 1 :(得分:0)

解决方案“像ifelse这样简单的ifelse(在%c(1,2,3)中测试$ column1%,测试$ column2,测试$ column3)” - 由joel.wilson工作。