R 将一列中的文本拆分为每行的多列

R 将一列中的文本拆分为每行的多列,r,stringr,R,Stringr,我有以下数据集: Class Range Value A 6 - 8 19 B 1 - 3 14 C 5 - 16 10 D 4 - 7 5 我想把每个类的范围分成两列。为此,我使用了函数str\u split\u fixed,如下所示: merge(data, str_split_fixed(data[, 2], " - ", 2)) 我甚至试过: merge(

我有以下数据集:

Class      Range      Value
A          6 - 8      19
B          1 - 3      14
C          5 - 16     10
D          4 - 7      5
我想把每个类的范围分成两列。为此,我使用了函数
str\u split\u fixed
,如下所示:

merge(data, str_split_fixed(data[, 2], " - ", 2))
我甚至试过:

merge(data, str_split_fixed(data$Range, " - ", 2))
但它们都给了我以下结果:

Class      Range      Value    V1     V2
A          6 - 8      19       6      8
B          1 - 3      14       6      8
C          5 - 16     10       6      8
D          4 - 7      5        6      8

我的问题是,为什么它会在其他课程中重复第一个范围?有人能帮忙吗?

str\u split\u fixed的输出是一个两列的
矩阵(没有dimnames),当我们在不指定列名的情况下进行
合并时,它会进行交叉连接。我们可以使用
cbind
或分配给两列,而不是
merge

data[c('V1', 'V2')] <- str_split_fixed(data[, 2], " - ", 2)

library(tidyverse)
data %>%
    separate(Range, into = c("V1", "V2"), convert = TRUE)
#   Class V1 V2 Value
#1     A  6  8    19
#2     B  1  3    14
#3     C  5 16    10
#4     D  4  7     5