我在R dataframe中有以下日期时间列
date
2016-03-21 16:18:00 IST
2016-04-01 03:12:00 IST
2016-04-01 14:58:00 IST
2016-04-02 03:24:00 IST
2016-04-02 19:00:00 IST
2016-04-02 20:40:00 IST
日期列为POSIXct格式
我想在12am-6am,6am-12pm,12pm-6pm and 6pm-12am
我想要的数据框是
date time_bucket
2016-03-21 16:18:00 IST 12pm-6pm
2016-04-01 03:12:00 IST 12am-6am
2016-04-01 14:58:00 IST 12pm-6pm
2016-04-02 03:24:00 IST 12pm-6pm
2016-04-02 19:00:00 IST 6pm-12am
2016-04-02 20:40:00 IST 6pm-12am
我怎样才能在r?
中这样做答案 0 :(得分:0)
有点冗长,但工作(编辑需要润滑剂包)
import java.io.*;
class Palindrome{
public static void main(String[] args){
Palindrome p=new Palindrome();
int i,j;
char arr[]={'r','e','v','e','r','s','e'};
int len=arr.length;
char name[]=new char[len];
for(i=0,j=len;j>0;j--,i++)
{name[i]=arr[j];}
//main`enter code here`
}
答案 1 :(得分:-1)
由于只有四个时隙我使用了一系列嵌套的ifelse statemenst和来自lubridate包的小时函数
> data1=read.csv("data1.csv")
> library(lubridate)
> data1$hour=hour(data1$date)
> data1$timeslot=ifelse(data1$hour<6,"12am-6am",data1$hour)
> data1$timeslot=ifelse(6<=data1$hour&data1$hour<12,"6am-12pm",data1$timeslot)
> data1$timeslot=ifelse(12<=data1$hour&data1$hour<18,"12pm-6pm",data1$timeslot)
> data1$timeslot=ifelse(18<=data1$hour&data1$hour<=24,"6pm-12pm",data1$timeslot)
> data1
date hour timeslot
1 2016-03-21 16:18:00 IST 16 12pm-6pm
2 2016-04-01 03:12:00 IST 3 12am-6am
3 2016-04-01 14:58:00 IST 14 12pm-6pm
4 2016-04-02 03:24:00 IST 3 12am-6am
5 2016-04-02 19:00:00 IST 19 6pm-12pm
6 2016-04-02 20:40:00 IST 20 6pm-12pm