我试图创建一个名为'period'的会计年度变量,该变量将从9月到8月运行六年。我的数据帧 'DAT' 的结构如下:将两个变量重新编码为一个新变量
'data.frame': 52966 obs. of 4 variables:
$ userid : int 96 96 96 101 101 101 101 101 101 101 ...
$ comment.year : int 2008 2009 2009 2008 2008 2008 2008 2008 2008 2009 ...
$ comment.month: int 7 3 8 7 8 9 10 11 12 1 ...
$ num.comments : int 1 1 1 33 51 16 27 29 40 39 ...
我收到此错误信息:错误:意外的 '=' “逸$期[comment.year = 2008 & comment.month =” 当我运行以下代码。我已经尝试了双等号,并将月份和年份整数放在引号中,但没有成功。我也想知道是否有更简单的方法来做recode。由于我正在处理6年,我的方法需要72行。
dat$period[comment.year=2008 & comment.month=9]<-"1"
dat$period[comment.year=2008 & comment.month=10]<-"1"
dat$period[comment.year=2008 & comment.month=11]<-"1"
dat$period[comment.year=2008 & comment.month=12]<-"1"
dat$period[comment.year=2009 & comment.month=1]<-"1"
dat$period[comment.year=2009 & comment.month=2]<-"1"
dat$period[comment.year=2009 & comment.month=3]<-"1"
dat$period[comment.year=2009 & comment.month=4]<-"1"
dat$period[comment.year=2009 & comment.month=5]<-"1"
dat$period[comment.year=2009 & comment.month=6]<-"1"
dat$period[comment.year=2009 & comment.month=7]<-"1"
dat$period[comment.year=2009 & comment.month=8]<-"1"
dat$period[comment.year=2009 & comment.month=9]<-"2"
dat$period[comment.year=2009 & comment.month=10]<-"2"
dat$period[comment.year=2009 & comment.month=11]<-"2"
dat$period[comment.year=2009 & comment.month=12]<-"2"
要使它更容易[重现](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)你r问题,给了我们一个'dput'而不是'str()'。因为你想测试的是平等而不是分配,所以在索引中使用'=='(即'dat $ period [comment.year == 2008&comment.month == 9] < - “1”') – MrFlick 2014-09-20 03:10:57
谢谢,不知道dput。很有用。我试过dat $ period [comment.year == 2008&comment.month == 9] < - “1”,但在dat $ period [comment.year == 2008&comment.month == 9]中得到错误< - < “1”:object'comment.year'not found – user3614783 2014-09-20 11:35:55
其实它应该是'dat $ period [dat $ comment.year == 2008&dat $ comment.monar == 9] < - “1”' – MrFlick 2014-09-20 13:41:33