我想替换 dplyr 风格,但我不知道如何在 R 中做到这一点

ryo*_*toi 0 r dplyr data.table

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

financials[is.na(ForecastEarningsPerShare), ForecastEarningsPerShare := ForecastEarningsPerShare2]
Run Code Online (Sandbox Code Playgroud)

你能告诉我该怎么做吗?

r2e*_*ans 5

data.table

financials[is.na(ForecastEarningsPerShare),
            ForecastEarningsPerShare := ForecastEarningsPerShare2]
Run Code Online (Sandbox Code Playgroud)

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

financials %>%
  mutate(
    ForecastEarningsPerShare = if_else(is.na(ForecastEarningsPerShare),
                                       ForecastEarningsPerShare2,
                                       ForecastEarningsPerShare)
  )
Run Code Online (Sandbox Code Playgroud)

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

financials %>%
  mutate(
    ForecastEarningsPerShare = coalesce(ForecastEarningsPerShare,
                                        ForecastEarningsPerShare2)
  )
Run Code Online (Sandbox Code Playgroud)

where使用参数中的coalesce第一个非值并返回它(向量化)。NA