Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何离散小时时间?_R_Lubridate - Fatal编程技术网

R 如何离散小时时间?

R 如何离散小时时间?,r,lubridate,R,Lubridate,我有一些时间值,我试图根据3个类别进行离散化:早上4.30、12.00、晚上12.00、21.00、晚上21.00、4.30 首先,我尝试使用lubridate将字符向量转换为字符 library(lubridate) h <- hm(c("14:30", "02:10", "06:30", "14:50", "20:30", "21:00", "12:00", "23:30", "08:10", "00:00")) lubridate中是否有特定功能?我们可以将其转换为times对象

我有一些时间值,我试图根据3个类别进行离散化:早上4.30、12.00、晚上12.00、21.00、晚上21.00、4.30

首先,我尝试使用lubridate将字符向量转换为字符

library(lubridate)
h <- hm(c("14:30", "02:10", "06:30", "14:50", "20:30", "21:00", "12:00", "23:30", "08:10", "00:00"))
lubridate中是否有特定功能?

我们可以将其转换为times对象

或者,也可以使用基本R中的strtime完成此操作

数据 我们可以把它转换成times对象

或者,也可以使用基本R中的strtime完成此操作

数据 您可以从基本R使用findInterval:

breaks=strptime(c("0.00","4.00","12.00","21.00","23.59"),"%H.%M")
labels=c("night","morning","evening","night")
labels[findInterval(strptime(dat,"%H:%M"),breaks)]
 [1] "evening" "night"   "morning" "evening" "evening" "night"   "evening"
 [8] "night"   "morning" "night"  
在哪里

我们可以看到,dat 2已被指定为夜间

您可以使用R基的findInterval:

breaks=strptime(c("0.00","4.00","12.00","21.00","23.59"),"%H.%M")
labels=c("night","morning","evening","night")
labels[findInterval(strptime(dat,"%H:%M"),breaks)]
 [1] "evening" "night"   "morning" "evening" "evening" "night"   "evening"
 [8] "night"   "morning" "night"  
在哪里


我们可以看到,dat2被赋予了夜间

另一个选项是将时间转换为数字,然后您可以在arules中使用离散化函数。这可以是灵活的,并与日期等一起使用

require(arules)
h <- data.frame(V1=(c("14:30", "02:10", "06:30", "14:50", "20:30", "21:00", "12:00", "23:30", "08:10", "00:00")))
h$V2<- gsub("\\:", "", h$V1)
h$discrete=discretize(h$V2,method="fixed",categories=c(0,1430,1200,2100,Inf))

另一个选择是将时间转换成数字,然后可以使用arules中的离散化函数。这可以是灵活的,并与日期等一起使用

require(arules)
h <- data.frame(V1=(c("14:30", "02:10", "06:30", "14:50", "20:30", "21:00", "12:00", "23:30", "08:10", "00:00")))
h$V2<- gsub("\\:", "", h$V1)
h$discrete=discretize(h$V2,method="fixed",categories=c(0,1430,1200,2100,Inf))

h是一段时间。现在不是时候。例如,从现在起,h可以是14小时30分钟,等等。因此,您必须首先转换为日期时间,然后使用CUT离散化时间段也可以。我知道这不是最好的方法,但我如何强制使用时间类型而不添加日期呢?离散化一个时间段是什么意思?告诉我你有10个小时的时间,你会如何离散?如果离午夜还有10个小时,或者离中午还有10个小时,或者离下午6点还有10个小时呢。那么10小时的时间段你将如何离散化呢?你将不得不添加日期,尽管它不会产生影响,因为你将处理时间。只要确保所有时间都有相同的date@Onyambuh是一段时间。现在不是时候。例如,从现在起,h可以是14小时30分钟,等等。因此,您必须首先转换为日期时间,然后使用CUT离散化时间段也可以。我知道这不是最好的方法,但我如何强制使用时间类型而不添加日期呢?离散化一个时间段是什么意思?告诉我你有10个小时的时间,你会如何离散?如果离午夜还有10个小时,或者离中午还有10个小时,或者离下午6点还有10个小时呢。那么10小时的时间段你将如何离散化呢?你将不得不添加日期,尽管它不会产生影响,因为你将处理时间。只要确保所有时间都有相同的date@Onyambu类似h的东西请检查输出。t[1]是给定的night@Onyambu它基于OP的标签。请检查他的代码第一个解决方案有NA@Dambo那是因为我没有做作业。就像第二个一样。如果res是第一个解决方案,只需执行res[is.nares],请检查您的输出。t[1]是给定的night@Onyambu它基于OP的标签。请检查他的代码第一个解决方案有NA@Dambo那是因为我没有做作业。就像第二个一样。如果res是第一个解决方案,只需执行res[is.nares]
v1 <- c("14:30", "02:10", "06:30", "14:50", "20:30",
            "21:00", "12:00", "23:30", "08:10", "00:00")    
breaks=strptime(c("0.00","4.00","12.00","21.00","23.59"),"%H.%M")
labels=c("night","morning","evening","night")
labels[findInterval(strptime(dat,"%H:%M"),breaks)]
 [1] "evening" "night"   "morning" "evening" "evening" "night"   "evening"
 [8] "night"   "morning" "night"  
 dat <- c("14:30", "02:10", "06:30", "14:50", "20:30",
        "21:00", "12:00", "23:30", "08:10", "00:00")    
require(arules)
h <- data.frame(V1=(c("14:30", "02:10", "06:30", "14:50", "20:30", "21:00", "12:00", "23:30", "08:10", "00:00")))
h$V2<- gsub("\\:", "", h$V1)
h$discrete=discretize(h$V2,method="fixed",categories=c(0,1430,1200,2100,Inf))