2016-05-01 9 views
1

Rでは、時間だけで余分な列を追加しようとしています。時刻から時間を抽出しようとすると、警告が表示される

私は、時間という名前の列、持っている:

09:30 
09:45 
10:00 
10:40 

を私は追加の列たい:

営業時間:

9 
9 
10 
10 

列の時間がタイプ "ファクター" からです。私はこのしようとすると:それは間違っている理由私は理解していない

Warning message: 
In .parse_hms(..., order = "HM", quiet = quiet): 
    some strings failed to parse 

library(lubridate) 
data$hour <- hour(hm(c(data$Time))) 

を私は警告を取得します。誰か助けてくれますか?

+0

も ​​'as.integer試みることができる(GSUB( ":を。*"、 ""、データ$時間))lubridate''なし ' –

答えて

0

c()コールをhour(hm(c(data$Time)))から削除します。

data$Timec()にラップすると、その属性を強制的に削除します。この結果、整数値のみが返され、hm()に渡されると解析が失敗します。

x <- factor(c("09:30", "09:45", "10:00", "10:40")) 

## everything is fine 
x  
# [1] 09:30 09:45 10:00 10:40 
# Levels: 09:30 09:45 10:00 10:40 

## wrapped with c() --> attributes dropped 
c(x) 
# [1] 1 2 3 4 

## wrapped with c() --> attributes dropped --> parsing fails 
lubridate::hm(c(x)) 
# [1] NA NA NA NA 
# Warning message: 
# In .parse_hms(..., order = "HM", quiet = quiet) : 
# Some strings failed to parse 

## remove c() --> everything is fine 
lubridate::hm(x) 
# [1] "9H 30M 0S" "9H 45M 0S" "10H 0M 0S" "10H 40M 0S" 

だから

にコードを変更
data$Time <- hour(hm(data$Time)) 
関連する問題