R 数据帧的复子集

R 数据帧的复子集,r,dataframe,R,Dataframe,考虑以下数据帧: 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=“Historica

考虑以下数据帧:

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=“Historical”
,只需返回历史列:

   Asset  Historical 
 1     A       0.05     
 2     B       0.04     
 3     C       0.03     
我想不出一个简单的方法,如果你有大量的行,暴力是非常低效的。有什么想法吗


谢谢

首先,预处理您的数据:

df2 <- transform(df, Forecast = ifelse(!is.na(Forecast), Forecast, Historical))

首先,预处理您的数据:

df2 <- transform(df, Forecast = ifelse(!is.na(Forecast), Forecast, Historical))

re:
ifelse
,看看这个问题:为什么不在脚本开头填写
NA
值?re:
ifelse
,看看这个问题:为什么不在脚本开头填写
NA
值?
df2[c("Asset", x)]