【问题标题】:Test for NA and select values based on result测试 NA 并根据结果选择值
【发布时间】:2011-11-21 05:32:35
【问题描述】:

我的问题很简单。我想要的是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  .

【问题讨论】:

    标签: r if-statement na


    【解决方案1】:

    使用is.na

    DF <- within(DF,
       C <- ifelse(!is.na(A),A,B)
    )
    

    DF 是您的数据框。

    【讨论】:

    • 不会DF &lt;- transform(DF,C=ifelse(!is.na(A),A,B)) 工作(我认为Df 是一个错字,你不应该需要Df$,我对transform 有轻微的审美偏好...
    • @BenBolker:不错的收获。而且不管你用transform还是inside,基本都一样。但它会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2021-11-10
    • 2018-09-24
    相关资源
    最近更新 更多