1
我在SPSS中构建了每小时的数据。开始时间7:00和结束时间7:59。当我在R中读到这些数据时,得到的数字如下:57600 & 61140.我如何让R将这些数值识别为小时?感谢您的帮助* strong text *在SPSS和R之间转换时间
我在SPSS中构建了每小时的数据。开始时间7:00和结束时间7:59。当我在R中读到这些数据时,得到的数字如下:57600 & 61140.我如何让R将这些数值识别为小时?感谢您的帮助* strong text *在SPSS和R之间转换时间
我想那些在R
中得到的数字就是相应的秒数, 02:51:03 = 2 * 60 * 60 + 51 * 60 + 3 = 10263秒。不符合我的猜想的是,7点不是57600秒,但是25200秒(上午)或68400秒(下午)。 57600秒对应于16:00(下午4:00)。
如果这些值实际上是秒,那么你可以把它们变成类似下面的函数toHour
的东西。
toHour <- function(x, seconds = F) # x is a value of seconds
{
hours <- x %/% 3600
secs. <- x %% 3600
mins <- secs. %/% 60
secs <- secs. %% 60
## add a 0 to single-digit hours/minutes/seconds to make it look nicer
mytime <- c(hours, mins, secs)
for(i in 1:length(mytime))
{
if(length(unlist(strsplit(as.character(mytime[i]), split = ""))) == 1)
{
mytime[i] <- paste(0, mytime[i], sep = "", collapse = "")
}
}
##
if(seconds == T)
{
return(paste(mytime[1], mytime[2], mytime[3], sep = ":", collapse = ""))
}
if(seconds == F)
{
return(paste(mytime[1], mytime[2], sep = ":", collapse = ""))
}
}
toHour(10263, seconds = T) # check function
#[1] "02:51:03" #checked
my_seconds <- seq(57600,61140, 60) # I guess you have no seconds in your time and, so, "my_seconds" is the values you get in R
sapply(my_seconds, toHour) # turn all values (seconds) to hours:minutes
#[1] "16:00" "16:01" "16:02" "16:03" "16:04" ...
sapply(my_seconds, toHour, seconds = T) # turn all values (seconds) to hours:minutes:seconds
#[1] "16:00:00" "16:01:00" "16:02:00" "16:03:00" ...
对不起,如果我误解了这个问题还是我的职位是无关紧要的,但我不能因为我的低信誉要求在评论细节。编辑:toHour
返回字符值。下一步是:
library(chron)
chron(times. = sapply(my_seconds, toHour, seconds = T))
#[1] 16:00:00 16:01:00 16:02:00 16:03:00 16:04:00 ...