如何在R中将一列分成两列?

时间:2018-06-04 18:22:39

标签: r

我有一个列如下所述,我想分成两列日期和时间。我怎么能这样做?

X$Datime
11/7/2016 11:51
11/7/2016 17:57
12/7/2016 9:17
12/7/2016 21:08
13-07-2016 08:33:16
13-07-2016 21:57:28
14-07-2016 06:15:32
15-07-2016 05:11:52
15-07-2016 17:57:27
11/7/2016 6:46
12/7/2016 5:08
12/7/2016 12:30
13-07-2016 04:49:20

1 个答案:

答案 0 :(得分:1)

您可以使用strsplit执行此操作。

Y <- do.call(rbind, strsplit(X$Datime, " "))
Y <- as.data.frame(Y, stringsAsFactors = FALSE)
names(Y) <- c("Date", "time")

请注意,Datime列必须属于character类才能使上述代码生效。很多时候,字符向量属于类factor,当它们是data.frame列时。如果您的数据属于这种情况,请改用

strsplit(as.character(X$Datime), " ")

数据。

Datime <- scan(what = character(), text = "
11/7/2016 11:51
11/7/2016 17:57
12/7/2016 9:17
12/7/2016 21:08
13-07-2016 08:33:16
13-07-2016 21:57:28
14-07-2016 06:15:32
15-07-2016 05:11:52
15-07-2016 17:57:27
11/7/2016 6:46
12/7/2016 5:08
12/7/2016 12:30
13-07-2016 04:49:20
", sep = "\n")

X <- data.frame(Datime, stringsAsFactors = FALSE)