我正在尝试在同一个表中从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
的类型设为日期?
答案 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"