我想问一下,如何通过将2列(带有分类值)与文件中的所有行合并,在R中的data.frame中创建新列。以下示例显示了column_1
和column_2
中的其他分类条件,如何通过合并column_3
和columns_1
来column_2
?此外,在第4行中,两列都有值,因此在这种情况下,column_3
中的值是什么。 (NA
是空白)。
Column_1 Column_2 Column_3
1 NA
NA 2
2 NA
NA 1
1 2
答案 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)))