Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 - Fatal编程技术网

R 字符串拆分为重复行

R 字符串拆分为重复行,r,R,给定以下示例数据集: col1 <- c("X1","X2","X3|X4|X5","X6|X7") col2 <- c("5","8","1","4") dat <- data.frame(col1,col2) 我需要一个解决方案,可以容纳多个类似于col2的列,这些列也需要复制。只需拆分字符串,然后根据长度重复其他列 y<-strsplit(as.character( dat[,1]) , "|", fixed=TRUE) data.frame(col1= unl

给定以下示例数据集:

col1 <- c("X1","X2","X3|X4|X5","X6|X7")
col2 <- c("5","8","1","4")
dat <- data.frame(col1,col2)

我需要一个解决方案,可以容纳多个类似于col2的列,这些列也需要复制。

只需拆分字符串,然后根据长度重复其他列

y<-strsplit(as.character( dat[,1])  , "|", fixed=TRUE)
data.frame(col1= unlist(y), col2= rep(dat[,2], sapply(y, length)))
  col1 col2
1   X1    5
2   X2    8
3   X3    1
4   X4    1
5   X5    1
6   X6    4
7   X7    4

欢迎来到stackoverflow!因为你是新来的,所以,请花一些时间阅读和阅读。很高兴你能提供一份工作。然而,同样重要的是,你要向我们展示你的尝试。我相信,如果您分享您尝试过的代码并解释错误所在,那么许多人(例如我)会更愿意提供帮助。谢谢您可以从我的“splitstackshape”包中尝试
concat.split.multiple
:库(splitstackshape);concat.split.multiple(dat,“col1”,“|”和“long”)。我会使用
tidyr
现在,尝试
分隔行(dat,col1,sep=“\\\\\”)
y<-strsplit(as.character( dat[,1])  , "|", fixed=TRUE)
data.frame(col1= unlist(y), col2= rep(dat[,2], sapply(y, length)))
  col1 col2
1   X1    5
2   X2    8
3   X3    1
4   X4    1
5   X5    1
6   X6    4
7   X7    4
data.frame(col1= unlist(y), dat[ rep(1:nrow(dat), sapply(y, length)) , -1 ] )