结合R中的日,月,年,小时到时间

时间:2017-05-24 06:26:13

标签: r

day   month     year    hour
01     05      2017     00
05     12      2017     01
10     07      2017     23

我现在没有列分钟和秒钟我试图以

格式获取单个变量date_time
2017-05-01 00:00:00
2017-12-05 01:00:00
2017-07-10 23:00:00

使用以下代码时出错:

df$date <- as.Date(with(df, paste(year, month, day,hour,sep="-")),
           "%Y-%m-%d %H:%M:%S") 

提前致谢

2 个答案:

答案 0 :(得分:3)

我们可以pastesprintf列与as.POSIXct一起使用,然后使用as.POSIXct(do.call(sprintf, c(df1, fmt = c("%02d-%02d-%4d %02d"))), format = "%d-%m-%Y %H") #[1] "2017-05-01 00:00:00 IST" "2017-12-05 01:00:00 IST" "2017-07-10 23:00:00 IST" 转换为日期时间

lubridate

或使用library(lubridate) with(df1, ymd_h(paste(year, month, day, hour, sep= ' ')))

tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                @Override
                public void onStart(String utteranceId) {

                }

                @Override
                public void onDone(String utteranceId) {
                    if (utteranceId.contains(<utterance_id_you_set>)){
                        Handler mainHandler = new Handler(getApplicationContext().getMainLooper());

                        Runnable myRunnable = new Runnable() {
                            @Override
                            public void run() {
                                //start your recognizer here
                            }
                        };
                        mainHandler.post(myRunnable);

                    }
                }

                @Override
                public void onError(String utteranceId) {

                }
            });
        }
    });

答案 1 :(得分:0)

由于年,月,日,小时存储在不同的列中,为什么不只使用greeting函数呢?例如:

ISOdate

如果您不想查看时区信息,只需将> ISOdate("2017","12", "05", "01") [1] "2017-12-05 01:00:00 GMT" 换成ISOdate

as.Date

但这会将对象的类别从POSIXct更改为Date,并且(如果我错了,请更正我)并不能真正删除时区信息。

在另一个问题How to convert in both directions between year,month,day and dates in R?

中对此进行了讨论