从date类型的另一列创建一个date类型的新列

时间:2017-03-19 21:33:56

标签: r datetime

我正在尝试在同一个表中从date类型的另一列创建一个类型为date的新列。

我的代码是这样的:

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)    

然后D的值是1398668469,1400311020,而不是日期。

如何将D的类型设为日期?

1 个答案:

答案 0 :(得分:0)

ifelse之后恢复课程或使用dplyr::if_else()

# 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"
相关问题