仅合并r中两列的值

时间:2013-04-29 20:52:36

标签: r

我遇到以下问题 -

我有一个数据框如下:

我想将值从df $ C移动到df $ A.

我在这里包含df $ B,因为当df $ B包含字符串时,df $ C只包含一个值。

A      B       C

1234   NA      NA
NA     start   1500
2000   NA      NA
NA     end     2500
NA     NA      NA
NA     NA      NA
NA     start   3000

因此,所需的结果如下:

A     

1234  
1500     
2000   
2500   
NA     
NA     
3000     

我非常感谢你对此的帮助!

2 个答案:

答案 0 :(得分:4)

尝试:

df$A[is.na(df$A)] <- df$C[is.na(df$A)]

这是从df$A中选择NA的值。{ 并使用df$C在同一索引处的值“填充”它们。

答案 1 :(得分:4)

使用ifelse。根据您希望如何处理NAA的非C值的情况,它将是以下之一:

df$A <- ifelse(is.na(df$A), df$C, df$A)

df$A <- ifelse(is.na(df$C), df$A, df$C)

一些变体,因此您不会使用太多df$

df$A <- with(df, ifelse(is.na(A), C, A)

df <- transform(df, A = ifelse(is.na(A), C, A))