R 中的解析列 - 删除定界符
Parse Column in R - Removing Delimitor
我有如下数据集:
Col2 Col4 Col5 Col6
A dfjk:: 6 9
B DJE|end 92 133
C nedl5 13 12
如何通过分隔符 |
解析出第二列?
最终预期输出:
Col2 Col4 NEW Col5 Col6
A dfjk:: NA 6 9
B DJE end 92 133
C nedl5 NA 13 12
一种选择是使用 tidyr::separate
library(tidyverse)
df %>% separate(Col4, c("Col4", "NEW"), sep = "\|", fill = "right")
# Col2 Col4 NEW Col5 Col6
#1 A dfjk:: <NA> 6 9
#2 B DJE end 92 133
#3 C nedl5 <NA> 13 12
示例数据
df <- read.table(text =
"Col2 Col4 Col5 Col6
A dfjk:: 6 9
B DJE|end 92 133
C nedl5 13 12", header = T)
一个非常方便的可能性是使用 cSplit()
from splitstackshape
:
cSplit(df, "Col4", "|")
Col2 Col5 Col6 Col4_1 Col4_2
1: A 6 9 dfjk:: <NA>
2: B 92 133 DJE end
3: C 13 12 nedl5 <NA>
我有如下数据集:
Col2 Col4 Col5 Col6
A dfjk:: 6 9
B DJE|end 92 133
C nedl5 13 12
如何通过分隔符 |
解析出第二列?
最终预期输出:
Col2 Col4 NEW Col5 Col6
A dfjk:: NA 6 9
B DJE end 92 133
C nedl5 NA 13 12
一种选择是使用 tidyr::separate
library(tidyverse)
df %>% separate(Col4, c("Col4", "NEW"), sep = "\|", fill = "right")
# Col2 Col4 NEW Col5 Col6
#1 A dfjk:: <NA> 6 9
#2 B DJE end 92 133
#3 C nedl5 <NA> 13 12
示例数据
df <- read.table(text =
"Col2 Col4 Col5 Col6
A dfjk:: 6 9
B DJE|end 92 133
C nedl5 13 12", header = T)
一个非常方便的可能性是使用 cSplit()
from splitstackshape
:
cSplit(df, "Col4", "|")
Col2 Col5 Col6 Col4_1 Col4_2
1: A 6 9 dfjk:: <NA>
2: B 92 133 DJE end
3: C 13 12 nedl5 <NA>