您好,您可以帮我解决一栏R的(小时)差异。 我仅使用基本软件包R。我想用几小时创建新列 所以该列看起来像
hours<-c(0,24,23,21,31,26,28)
time<-c('10. 4. 2018 10:16:11',
'11. 4. 2018 10:16:15',
'12. 4. 2018 10:13:31',
'13. 4. 2018 8:16:31',
'14. 4. 2018 15:16:21',
'15. 4. 2018 17:16:31',
'16. 4. 2018 19:15:31')
我有一个专栏(时间),我想创建一个新列(小时)
谢谢
答案 0 :(得分:1)
c(0, round(diff(as.POSIXct(time, format = '%d. %m. %Y %H:%M:%S'), units = "hours")))
接近OP的预期结果
[1] 0 24 24 22 31 26 26
time <- c(
'10. 4. 2018 10:16:11',
'11. 4. 2018 10:16:15',
'12. 4. 2018 10:13:31',
'13. 4. 2018 8:16:31',
'14. 4. 2018 15:16:21',
'15. 4. 2018 17:16:31',
'16. 4. 2018 19:15:31'
)
答案 1 :(得分:0)
另一种方法如下。
第一次强迫上课POSIXct
。
time <- as.POSIXct(time, format = "%d. %m. %Y %H:%M:%S")
现在使用difftime
,它将以所需的单位给出结果。
c(0, difftime(time[-1], time[-length(time)]))
#[1] 0.00000 24.00111 23.95444 22.05000 30.99722 26.00278 25.98333
四舍五入的输出很容易获得。
round(c(0, difftime(time[-1], time[-length(time)])))
#[1] 0 24 24 22 31 26 26