r - 我想替换 dplyr 样式,但我不知道如何在 R 中进行

我想将此代码替换为 dplyr 样式。

financials[is.na(ForecastEarningsPerShare), ForecastEarningsPerShare := ForecastEarningsPerShare2]

你能告诉我怎么做吗?

回答1

来自 data.table

financials[is.na(ForecastEarningsPerShare),
            ForecastEarningsPerShare := ForecastEarningsPerShare2]

进入 dplyr,也许是字面意思:

financials %>%
  mutate(
    ForecastEarningsPerShare = if_else(is.na(ForecastEarningsPerShare),
                                       ForecastEarningsPerShare2,
                                       ForecastEarningsPerShare)
  )

但是一个更容易阅读的方法:

financials %>%
  mutate(
    ForecastEarningsPerShare = coalesce(ForecastEarningsPerShare,
                                        ForecastEarningsPerShare2)
  )

其中 coalesce 使用参数中的第一个非 NA value 并返回它(矢量化)。

相似文章

随机推荐

最新文章