R 从日期类型的另一列创建日期类型的新列

R 从日期类型的另一列创建日期类型的新列,r,datetime,R,Datetime,我正在尝试从同一表中的另一列日期类型创建日期类型的新列 我的代码如下: A <- c(1,2) B <- c(as.POSIXct("2014-04-28 03:01:09"),NA) C <- c(as.POSIXct(NA), as.POSIXct("2014-05-17 03:17:00")) df <- data.frame(A,B,C) df$D <- ifelse(A == 1, B, C) A在ifelse之后还原类,或者使用dplyr::i

我正在尝试从同一表中的另一列日期类型创建日期类型的新列

我的代码如下:

A <- c(1,2)
B <- c(as.POSIXct("2014-04-28 03:01:09"),NA)
C <- c(as.POSIXct(NA), as.POSIXct("2014-05-17 03:17:00"))
df <- data.frame(A,B,C)
df$D <- ifelse(A == 1, B, C)    

A在
ifelse
之后还原类,或者使用
dplyr::if\u else()

#使用ifelse和restore类

df$D 1)我们能看到你的一个日期的实际输出吗?2) 你反对用图书馆来处理日期吗?我强烈推荐使用R中的软件包dates@TaylorV我要复制的日期类似于“2014-05-25 12:06:18”,但新列的输出是“1401019580”,类型是数字。我可以使用新的库,但我是R方面的新手,甚至不知道哪个包可以帮助我。@zx8754访问$a中有许多值,这就是我使用for循环的原因。我刚刚尝试了ifelse,新列的类型仍然是数字,但我希望它是日期。你知道怎么做吗?
# using ifelse and restore class
df$D <- ifelse(A == 1, B, C)  
class(df$D) <- class(df$B)

# or use dplyr if_else
library(dplyr)
df <- df %>% mutate(D_v1 = if_else(A == 1, B, C))

str(df)
# 'data.frame': 2 obs. of  5 variables:
# $ A   : num  1 2
# $ B   : POSIXct, format: "2014-04-28 03:01:09" NA
# $ C   : POSIXct, format: NA "2014-05-17 03:17:00"
# $ D   : POSIXct, format: "2014-04-28 03:01:09" "2014-05-17 03:17:00"
# $ D_v1: POSIXct, format: "2014-04-28 03:01:09" "2014-05-17 03:17:00"