R 通过将两个单元格中的字符串列表组合在一起,将它们转换为行

R 通过将两个单元格中的字符串列表组合在一起,将它们转换为行,r,split,R,Split,我有一个有很多行的列表,它的形式是这样的 Peter,Sam,Andrew a,b,c,d Anna,Susan,Sandra,Annie e,f,g 我想把它转换成一个列表 Peter a Peter b Peter c Peter d Sam a Sam b Sam c Sam d ... Annie e Annie f Annie g 我该怎么做?我在行上尝试了for循环,并使用strsplit函数将它们分开,然后我想将它们组合在

我有一个有很多行的列表,它的形式是这样的

Peter,Sam,Andrew         a,b,c,d
Anna,Susan,Sandra,Annie  e,f,g
我想把它转换成一个列表

Peter  a
Peter  b
Peter  c
Peter  d
Sam    a
Sam    b
Sam    c
Sam    d
...
Annie  e
Annie  f
Annie  g

我该怎么做?我在行上尝试了for循环,并使用
strsplit
函数将它们分开,然后我想将它们组合在一起,但我没有成功,出现了错误,无法继续。我们可以使用
cSplit
库(splitstackshape)

更新 如果我们有一个类似“str1”的字符串,我们可以使用
strsplit
获取“df1”,然后执行
cSplit

df1 <- data.frame(lapply(strsplit(str1, '\\s'), 
           matrix, ncol=2,byrow=TRUE))
cSplit(cSplit(df1, 'X1', ',', 'long'), 'X2', ',', 'long')

df1。。。。您尝试过什么?您有
数据.frame
列表吗?谢谢,但是如果我不想使用数据作为向量,我该怎么做呢?你们知道我的列表有太多的行,我不能像你们一样为每一行创建向量@akrunI在代码V1=as.vector(read.table(“1.txt”,header=F,sep=“\t”))V2=as.vector(read.table(“2.txt”,header=F,sep=“\t”))中尝试了这一点,但它将它们转换为整数,即使我尝试将它们转换为.character,但它对我没有帮助@akrun@minoo您应该提供一些小数据集的dput。不清楚您是否有
向量
列表
数据帧
。将data.frame转换为
vector
的方法也不正确。我有这样一个列表“Anna,Susan,Sandra,Annie e,f,g Peter,Sam,Andrew a,b,c,d Anna,Susan,Sandra,Annie e,f,在最后一个命令中,我将其转换为两个列表,以便将其用于您的code@minoo它不是一个
列表
。如果我理解的话,它是一个字符串;
df1 <- data.frame(lapply(strsplit(str1, '\\s'), 
           matrix, ncol=2,byrow=TRUE))
cSplit(cSplit(df1, 'X1', ',', 'long'), 'X2', ',', 'long')
df1 <- structure(list(v1 = c("Peter,Sam,Andrew", 
 "Anna,Susan,Sandra,Annie"
), v2 = c("a,b,c,d", "e,f,g")), .Names = c("v1", "v2"), 
class = "data.frame", row.names = c(NA, -2L))

str1 <- 'Anna,Susan,Sandra,Annie e,f,g Peter,Sam,Andrew a,b,c,d Anna,Susan,Sandra,Annie e,f,g '