例如,假设我有一个专栏,如下所示:
name:Michael,Age:31,City:NYC
我如何将此列拆分为多个单独的列,以使其产生类似于数据框的结果:
name | Age | City
1 Michael | 31 | NYC
我try 使用qdapTools包中的mtabate,但结果只有Boolean Value列.
例如,假设我有一个专栏,如下所示:
name:Michael,Age:31,City:NYC
我如何将此列拆分为多个单独的列,以使其产生类似于数据框的结果:
name | Age | City
1 Michael | 31 | NYC
我try 使用qdapTools包中的mtabate,但结果只有Boolean Value列.
在base R
,可以用read.dcf
来完成
out <- type.convert(as.数据.frame(
read.dcf(textConnection(paste(gsub(",", "\n", df1$col1),
collapse = "\n\n")))
), as.is = TRUE)
-输出
> out
name Age City
1 Michael 31 NYC
2 Michael 31 NYC
或使用tidyverse
library(dplyr)
library(tidyr)
df1 %>%
mutate(rn = row_number()) %>%
separate_rows(col1, sep = ",\\s*") %>%
separate(col1, into = c('col1', 'col2'), sep = ":") %>%
pivot_wider(names_from = col1, values_from = col2) %>%
select(-rn)
# A tibble: 2 × 3
name Age City
<chr> <chr> <chr>
1 Michael 31 NYC
2 Michael 31 NYC
df1 <- structure(list(col1 = c("name:Michael,Age:31,City:NYC",
"name:Michael,Age:31,City:NYC"
)), class = "数据.frame", row.names = c(NA, -2L))