我有以下数据集:
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/