3
當試圖回答this question時,我遇到了使用filter
從dplyr
-package到lubridat
-period列的問題。dplyr的過濾器不能處理lubridate的時間格式嗎?
實施例的數據:
df <- data.frame(time = ms(c('0:19','1:24','7:53','11:6')), value = 1:4)
使用:
filter(df, time > ms('5:00'))
# or:
filter(df, time > '5M 00S')
導致錯誤的輸出:
time value
1 53S 3
2 1M 6S 4
Warning message:
In format.data.frame(x, digits = digits, na.encode = FALSE) :
corrupt data frame: columns will be truncated or padded with NAs
應用從this answer所述溶液不還導致正確的輸出:
> df %>%
+ mutate(time = format(time, '%M:%S')) %>%
+ filter(time > '05:00')
time value
1 19S 1
2 1M 24S 2
3 7M 53S 3
4 11M 6S 4
但使用香草[R方法,做的工作:
> df[df$time > ms('5:00'), ]
time value
3 7M 53S 3
4 11M 6S 4
> subset(df, time > ms('5:00'))
time value
3 7M 53S 3
4 11M 6S 4
有什麼,我在我的dplyr
方法做錯了什麼?
只是爲了澄清,問題是,正確行是選擇(3和4)但時間列已被更改? – Axeman
是的,我試過了,它似乎是交換M和S – amrrs
它可以有什麼與t and和限制在其中定義一個日期結構? – Sotos