我有一个数据集,如下:
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)
使用splitstackshape
的cSplit()
很方便的可能性:
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>