测试NA并根据结果选择值

Dan*_*Dan 24 if-statement r na

我的问题很简单.我想要的是A[i]!=NA,然后C[i]=A[i],A[i]=NA然后C[i]=B[i],然而,我总是得到一些错误消息.有人可以帮帮我吗?

A   B   C
NA  82.6    .
NA  127.2   .
NA  93.6    .
NA  105 .
NA  104 .
NA  90.6    .
NA  95.8    .
NA  103 .
NA  85.4    .
NA  81.5    .
NA  142.8   .
NA  102.3   .
NA  104 .
NA  103 .
NA  94.6    .
NA  113.8   .
NA  113.5   .
NA  74.5    .
NA  123.8   .
NA  94  .
NA  89.8    .
NA  74  .
NA  104 .
NA  100.5   .
NA  102.9   .
NA  132.5   .
NA  91  .
NA  92.5    .
NA  97  .
NA  90  .
54.6    51.7    .
NA  61  .
NA  80  .
NA  77.5    .
NA  NA  .
NA  80.6    .
NA  44.6    .
NA  37.6    .
NA  27  .
NA  NA  .
NA  NA  .
NA  NA  .
Run Code Online (Sandbox Code Playgroud)

Jor*_*eys 54

用途is.na:

DF <- within(DF,
   C <- ifelse(!is.na(A),A,B)
)
Run Code Online (Sandbox Code Playgroud)

DF是您的数据帧.

  • DF &lt;-transform(DF,C = ifelse(!is.na(A),A,B))不会起作用(我认为`Df`是错字,您不需要`Df $` ,而我对`transform`的审美偏爱... (2认同)