我想将此代码替换为 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 并返回它(矢量化)。