在R中,我有一个表,每行包含一个字符串:
input <- c("05/20/20 14:00 adam", "02/12/19 13:24 eric")
(这些是单个字符串)
如何将字符串分成多列为此
Date Time Name
"05/20/20" 14:00 "adam"
"02/12/19" 13:24 "eric"
您可以在separate
包内使用tidyverse
。只需用数据中的实际列名替换nameColumn
(不带引号)。
library(tidyverse)
df %>%
#Split character column into 3 columns, separating by blank space
separate(col = nameColumn,
into = c("Date","Time","Name"),
sep = " ")
tidyr::separate()
为此工作:
创建数据示例:
input <- data.frame(
a = c("05/20/20 14:00 adam",
"02/12/19 13:24 eric"),
stringsAsFactors = FALSE
)
分别介绍三列:
library(tidyr)
separate(input,
a,
into = c("date", "time", "name"),
sep = " ")
这适用于您给出的示例。如果您的数据包含不规则性,则可以使用separate()
的其他参数(即Extra和Fill)来定义如何处理这些问题。