我有一个向量,其中包含存储为像这样的因子整数的日期和时间
“20151201 070104”
我需要在空间分开它。我试过了:
dtsplit = as.numeric(strsplit(dtimes, " "))
但这不起作用,因为它不是char格式。
我最好怎么做?
答案 0 :(得分:0)
您可以使用已发现的strspit
分割您的dtimes。因为您的字符串现在是数字,所以首先需要使用as.character()
函数将其转换为char。
我们的解决方案是:
dtimes <- "20151201 070104"
dtsplit = strsplit(as.character(dtimes), " ")
如果您的表格中包含多个日期,例如您在评论中发布的日期:
df <- structure(list(V1 = structure(c(1L, 2L, 3L, 4L, 4L, 5L), .Label = c("20151201 070104", "20151201 070105", "20151201 070119", "20151201 070127", "20151201 070210" ), class = "factor"), V2 = c(160.02, 160.02, 160.01, 160, 160.01, 160.02), V3 = c(2, 2, 1, 1, 1, 2)), .Names = c("V1", "V2", "V3" ), class = "data.frame", row.names = c(NA, -6L))
我的猜测是你需要每列的日期,而不是时间。您可以使用sapply
函数将strsplit应用于每一行(this question has more information about this):
df$date <- sapply(strsplit(as.character(df$V1), " ")[], "[[", 1)
df$time <- sapply(strsplit(as.character(df$V1), " ")[], "[[", 2)
#> df
# V1 V2 V3 date time
#1 20151201 070104 160.02 2 20151201 070104
#2 20151201 070105 160.02 2 20151201 070105
#3 20151201 070119 160.01 1 20151201 070119
#4 20151201 070127 160.00 1 20151201 070127
#5 20151201 070127 160.01 1 20151201 070127
#6 20151201 070210 160.02 2 20151201 070210