考虑以下数据框:
df <- data.frame(Asset = c("A", "B", "C"), Historical = c(0.05,0.04,0.03), Forecast = c(0.04,0.02,NA))
# Asset Historical Forecast
#1 A 0.05 0.04
#2 B 0.04 0.02
#3 C 0.03 NA
以及变量x
。x
由用户在 R 脚本的开头设置,并且可以采用两个值:要么x = "Forecast"
要么x = "Historical"
.
如果x = "Forecast"
,我想返回以下内容:对于每个资产,如果有预测,则从“预测”列中返回适当的数字,否则,从“历史”列中返回适当的数字。正如您在下面看到的,A 和 B 都有一个预测值,该值在下面返回。C 缺少预测值,因此返回历史值。
Asset Return
1 A 0.04
2 B 0.02
3 C 0.03
但是,如果 ,x= "Historical"
只需返回历史列:
Asset Historical
1 A 0.05
2 B 0.04
3 C 0.03
我想不出一个简单的方法,如果你有大量的行,蛮力是非常低效的。有任何想法吗?
谢谢!