2

我有以下问题 -

我有一个数据框如下:

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

我在此处包含 df$B,因为 df$C 仅在 df$B 包含字符串时才包含值。

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     

非常感谢您对此的帮助!

4

2 回答 2

4

使用ifelse. 根据您希望如何处理 和 都没有值的情况,NA它将是以下之一:AC

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))
于 2013-04-29T21:13:00.533 回答
4

尝试:

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

这是从df$A那些值中选择它,并用来自同一索引的NA
值“填充”它们。df$C

于 2013-04-29T20:56:22.607 回答