如何将两列合并为一列?

chribonn

我被困在将数据框架的两列合并为一列。下面是重现该问题的代码

df <- data.frame(date = c("2/13/1962 0:00:00", "4/13/1972 0:00:00", "3/13/1982 0:00:00", "12/13/1992 0:00:00"), 
                 time = c("0900", "1000", "1101", "1603"))

#This works
df$tmp <- as.Date(df$date, format="%m/%d/%Y")
df  

                date     time        tmp  
    1  2/13/1962 0:00:00 0900 1962-02-13  
    2  4/13/1972 0:00:00 1000 1972-04-13  
    3  3/13/1982 0:00:00 1101 1982-03-13  
    4 12/13/1992 0:00:00 1603 1992-12-13    


# this doesn't
df$tmp <- strptime(strsplit(as.character(df$date), " ")[[1]][1], format="%m/%d/%Y")
df

    1  2/13/1962 0:00:00 0900 1962-02-13
    2  4/13/1972 0:00:00 1000 1962-02-13
    3  3/13/1982 0:00:00 1101 1962-02-13
    4 12/13/1992 0:00:00 1603 1962-02-13    

我想以一列结束,该列结合了日期和时间列的日期部分,但无法获得此结果。

在进行实验时,我注意到该as.Date函数确实可以转换日期。另一方面,使用该strsplit功能,所有行都以第一个日期结尾。

我非常感谢提供解决方案的任何帮助,最后有4行有一个“ Date”对象:

    1 1962-02-13 09:00
    2 1972-04-13 10:00
    3 1982-03-13 11:01
    4 1992-12-13 16:03
亨里克

您可以paste设置日期和时间变量,然后as.POSIXct与结合使用format

as.POSIXct(x = paste(as.Date(df$date, format = "%m/%d/%Y"), df$time),
           format = "%Y-%m-%d %H%M")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章