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