gpt4 book ai didi

r - 使用 "."分隔符 R 将一列拆分为 2 列

转载 作者:行者123 更新时间:2023-12-02 07:57:32 24 4
gpt4 key购买 nike

我有以下数据集:

the_data <- data.frame(the_col = "a.1","b.2","c.3","d.4")

我试着把它分成两列。这似乎是一个重复的问题,但让它与众不同的是我想要的分隔符(点)。我试过:

the_data %>% separate(the_col, into = c("alfa","beta"), sep = ".") 

但是我收到了一个警告,而不是我想要的:

 alfa beta X.b.2. X.c.3. X.d.4.
1 b.2 c.3 d.4

我想要的是:

alfa   beta
a 1
b 2
c 3
d 4

你能帮帮我吗?谢谢。

最佳答案

我们可以获取long格式的数据,然后使用separate

library(dplyr)
library(tidyr)

pivot_longer(the_data, cols = everything()) %>%
separate(value, into = c('alpha', 'beta'), sep = "\\.") %>%
select(-name)

# A tibble: 4 x 2
# alpha beta
# <chr> <chr>
#1 a 1
#2 b 2
#3 c 3
#4 d 4

使用 base R,我们可以拆分 "." 上的未列出的字符串,将其转换为两列数据框并为其添加名称。

setNames(do.call(rbind.data.frame, strsplit(unlist(the_data), '\\.')), 
c('alpha', 'beta'))

关于r - 使用 "."分隔符 R 将一列拆分为 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61787280/

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