gpt4 book ai didi

r - 如何将逗号和冒号分隔的列拆分为 R 中的相应列?

转载 作者:行者123 更新时间:2023-12-02 18:05:47 24 4
gpt4 key购买 nike

例如,我有一个看起来像这样的列:

name:Michael,Age:31,City:NYC

我如何将此列拆分为单独的列,以便产生类似于数据框的结果:

   name   | Age | City
1 Michael | 31 | NYC

我尝试使用 qdapTools 包中的 mtabulate,但它只产生了 bool 值列。

最佳答案

base R中,可以用read.dcf完成

out <- type.convert(as.data.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 = "data.frame", row.names = c(NA, -2L))

关于r - 如何将逗号和冒号分隔的列拆分为 R 中的相应列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73279829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com