根据数据框中的列更新时间序列

时间:2015-01-16 14:02:36

标签: r time-series

我的数据框df为

Name    DoApply
T1      No
T2      Yes
T3      No

和时间序列对象z为

                T1      T2      T3
2013-01-18      20      15      21
2013-01-20      30      18      17
2013-01-21      10      21      24
2013-01-22      15      17      15
2013-01-23      18      16      18

我希望输出是基于是或否

                T1      T2      T3
2013-01-18      20      0       21
2013-01-20      30      0       17
2013-01-21      10      0       24
2013-01-22      15      0       15
2013-01-23      18      0       18

我正在尝试这样的事情,但无法做到这一点

coredata(z)[match something from df] <- 0

1 个答案:

答案 0 :(得分:2)

你可以尝试

z[,df$DoApply[match(colnames(z), df$Name)]=='Yes'] <- 0

或者

 z[,with(df, Name[DoApply=='Yes'])] <- 0