Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 分隔两列的相似分隔符_R_Split_Delimiter - Fatal编程技术网

R 分隔两列的相似分隔符

R 分隔两列的相似分隔符,r,split,delimiter,R,Split,Delimiter,我有一个包含两列的数据,每个单元格中的条目用分隔符分隔。 示例数据如下所示: A|B|C 20|30|40 C|D 20|40 v|M|R|Y 29|23|24|23 C 20 所以我想让它看起来像这样: A 20 B 30 C 40 C 20 D 40 V 29 M 23 R 24 Y 23 C 20 我可以使用cSplit函数根据分隔符对一列进行分隔,但我很难将字母表映射到第二列中相应的数字。 请帮助我找到一种方法,我们可以使用cSplit。它也适

我有一个包含两列的数据,每个单元格中的条目用分隔符分隔。 示例数据如下所示:

A|B|C    20|30|40
C|D      20|40
v|M|R|Y  29|23|24|23
C        20
所以我想让它看起来像这样:

A 20    
B 30
C 40
C 20
D 40
V 29
M 23
R 24
Y 23
C 20
我可以使用
cSplit函数
根据分隔符对一列进行分隔,但我很难将字母表映射到第二列中相应的数字。
请帮助我找到一种方法,我们可以使用
cSplit
。它也适用于多列。使用列索引或列的名称

library(splitstackshape)
cSplit(df1, 1:2, "|", "long")
#    V1 V2
# 1:  A 20
# 2:  B 30
# 3:  C 40
# 4:  C 20
# 5:  D 40
# 6:  v 29
# 7:  M 23
# 8:  R 24
# 9:  Y 23
#10:  C 20
数据
df1我们可以使用
cSplit
。它也适用于多列。使用列索引或列的名称

library(splitstackshape)
cSplit(df1, 1:2, "|", "long")
#    V1 V2
# 1:  A 20
# 2:  B 30
# 3:  C 40
# 4:  C 20
# 5:  D 40
# 6:  v 29
# 7:  M 23
# 8:  R 24
# 9:  Y 23
#10:  C 20
数据
df1仅使用基本R:

# re-create your input data
Input <- 
read.table(text=
'A|B|C 20|30|40
C|D 20|40
v|M|R|Y 29|23|24|23
C 20',stringsAsFactors=FALSE,col.names=c('Col1','Col2'))

# let's split...
DF2 <- 
data.frame(
Col1=unlist(strsplit(Input$Col1,split='|',fixed=TRUE)),
Col2=unlist(strsplit(Input$Col2,split='|',fixed=TRUE)))

> DF2
   Col1 Col2
1     A   20
2     B   30
3     C   40
4     C   20
5     D   40
6     v   29
7     M   23
8     R   24
9     Y   23
10    C   20
#重新创建输入数据
仅使用基本R输入:

# re-create your input data
Input <- 
read.table(text=
'A|B|C 20|30|40
C|D 20|40
v|M|R|Y 29|23|24|23
C 20',stringsAsFactors=FALSE,col.names=c('Col1','Col2'))

# let's split...
DF2 <- 
data.frame(
Col1=unlist(strsplit(Input$Col1,split='|',fixed=TRUE)),
Col2=unlist(strsplit(Input$Col2,split='|',fixed=TRUE)))

> DF2
   Col1 Col2
1     A   20
2     B   30
3     C   40
4     C   20
5     D   40
6     v   29
7     M   23
8     R   24
9     Y   23
10    C   20
#重新创建输入数据

输入谢谢您的帮助,我应该更好地阅读cSplit的帮助文档。谢谢您的帮助,我应该更好地阅读cSplit的帮助文档。谢谢您的替代方法。谢谢您的替代方法。