我遇到以下问题 -
我有一个数据框如下:
我想将值从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
我非常感谢你对此的帮助!
答案 0 :(得分:4)
尝试:
df$A[is.na(df$A)] <- df$C[is.na(df$A)]
这是从df$A
中选择NA
的值。{
并使用df$C
在同一索引处的值“填充”它们。
答案 1 :(得分:4)
使用ifelse
。根据您希望如何处理NA
和A
的非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))