根据条件语句从其他列填充 R 中的新列
Populate new column in R from other columns based on conditional statement
我在 R 中有一个数据框 (data.frame(test)),其中包含以下信息。
Columns1 | Column2 | Column3
1 | 11 | 33
3 | 34 | 56
4 | 24 | 23
5 | 74 | 64
3 | 45 | 52
2 | 54 | 53
1 | 76 | 92
我正在尝试根据第 1 列的条件语句创建一个由第 2 列和第 3 列中的数据填充的新列。
我似乎不知道如何写出合适的条件。
if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) {
test$Newcolumn = test$column1
} else {
test$NewColumn = test$column2
}
最终结果应该是这样的:
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
使用 dplyr
,假设 mydf
是您的数据框:
mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res
我假设您的问题中有错字,您打算将 column2
值分配给 newColumn
以防满足条件。
– joel.wilson 的解决方案 "a simple ifelse like ifelse(test$column1 %in% c(1,2,3), test$column2, test$column3)" 有效。
我在 R 中有一个数据框 (data.frame(test)),其中包含以下信息。
Columns1 | Column2 | Column3
1 | 11 | 33
3 | 34 | 56
4 | 24 | 23
5 | 74 | 64
3 | 45 | 52
2 | 54 | 53
1 | 76 | 92
我正在尝试根据第 1 列的条件语句创建一个由第 2 列和第 3 列中的数据填充的新列。
我似乎不知道如何写出合适的条件。
if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) {
test$Newcolumn = test$column1
} else {
test$NewColumn = test$column2
}
最终结果应该是这样的:
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
使用 dplyr
,假设 mydf
是您的数据框:
mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res
我假设您的问题中有错字,您打算将 column2
值分配给 newColumn
以防满足条件。
– joel.wilson 的解决方案 "a simple ifelse like ifelse(test$column1 %in% c(1,2,3), test$column2, test$column3)" 有效。