我試圖創建一個名爲'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