合并2列,然后在R中的data.frame中创建一个新列

时间:2016-10-10 22:57:40

标签: r

我想问一下,如何通过将2列(带有分类值)与文件中的所有行合并,在R中的data.frame中创建新列。以下示例显示了column_1column_2中的其他分类条件,如何通过合并column_3columns_1column_2?此外,在第4行中,两列都有值,因此在这种情况下,column_3中的值是什么。 (NA是空白)。

Column_1 Column_2  Column_3
1          NA
NA          2
2           NA
NA          1
1           2

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!请考虑提供reproducible example,以便我们更方便地为您提供帮助。 E.g。

df <- data.frame(Column_1 = c(1, NA, 2, NA, 1), Column_2=c(NA, 2, NA, 1, 2))

如果你只想坚持基础R,你可以在这里使用ifelse

df$Column_3 = ifelse(is.na(df$Column_1), df$Column_2,
                     ifelse(is.na(df$Column_2), df$Column_1,
                            df$Column_1))

这表示“如果第1列为NA,则使用第2列。否则,如果第2列为NA,则使用第1列。否则(两者都不是NA),使用第1列”。

如果两列都不是-NA,您需要决定要做什么。

如果您想跳过某些输入(df$),可以使用with

df$Column_3 = with(df,
                   ifelse(is.na(Column_1), Column_2,
                          ifelse(is.na(Column_2), Column_1,
                                 Column_1)))