0

我正在尝试在 R (mac OSX) 中运行一个简单的回归,以查看环境认证的水平是否随着时间的推移而提高 - 除其他外。我下载的数据提供了 1-4 的级别,以及 1-Mar-12 格式的日期。我似乎无法让 R 转换日期,并且我不断收到相同的错误消息。变量的长度相同。

$ certification_date: chr  "1-Aug-11" "1-Aug-11" "1-Aug-11" "1-Jul-11" ...

jday<-as.Date('certification_date',format='%d-%b-%y',"%j")
mod <- lm(Level_number ~ jday, data=data)

Error in model.frame.default(formula = Level_number ~ jday, data = data,  : 
  variable lengths differ (found for 'jday')

summary(jday)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  NA      NA      NA      NA      NA      NA     "1" 

谁能发现我哪里出错了?

4

1 回答 1

0

certification_date您应该删除评论中提到的引号,但是%b是当前语言环境中的缩写月份名称。因此,您可能会遇到当地人的另一个问题。在这里,我提出了一个独立的本地解决方案:

## get your current local time
loc <- Sys.getlocale('LC_TIME')  
## set the local to english , since %b is local dependent 
Sys.setlocale('LC_TIME','ENGLISH')
jday <-as.Date(certification_date,format='%d-%b-%y',"%j")
Sys.setlocale('LC_TIME',loc)

结果是:

jday
[1] "2011-08-01" "2011-08-01" "2011-08-01" "2011-07-01"
于 2013-04-19T09:54:42.437 回答