R:通过多个答案拆分数据帧

R:通过多个答案拆分数据帧,r,R,所以我有一个包含调查结果的数据框架。 问题是,我在牢房里有几个问题有多个答案。 例如: q1|q2 answer1;answer2;ansert4 |1986 因此,我需要为特定的分析任务提取“整洁”数据集,这意味着:将这些单元格拆分到同一列中,并复制其他指定列,以便如下所示: q1|q2 answer1|1986 answer2|1986 answer4|1986 我在R怎么做? 我很确定这是一项简单的任务,但我没有任何线索…您可以使用数据来完成此任务。表包和strsplit函数: lib

所以我有一个包含调查结果的数据框架。 问题是,我在牢房里有几个问题有多个答案。 例如:

q1|q2
answer1;answer2;ansert4 |1986
因此,我需要为特定的分析任务提取“整洁”数据集,这意味着:将这些单元格拆分到同一列中,并复制其他指定列,以便如下所示:

q1|q2
answer1|1986
answer2|1986
answer4|1986
我在R怎么做?
我很确定这是一项简单的任务,但我没有任何线索…

您可以使用
数据来完成此任务。表
包和
strsplit
函数:

library(data.table)
setDT(df)[,setNames(strsplit(q1, ';'),'q1'),by=q2]
#     q2       q1
#1: 1986  answer1
#2: 1986  answer2
#3: 1986 ansert4 
数据:

df = structure(list(q1 = "answer1;answer2;ansert4 ", q2 = 1986L), .Names = c("q1", 
"q2"), class = "data.frame", row.names = c(NA, -1L))

另一个类似的解决方案是

library(splitstackshape)
cSplit(df, "q1", sep = ";", direction = "long")
#         q1   q2
# 1: answer1 1986
# 2: answer2 1986
# 3: ansert4 1986

你可能应该在这里的某个地方提到GitHub,我想我真的没听明白。。!Git有什么意义?哦,没关系,我以为您使用了devel版本的
tstrsplit
函数。无论采用哪种方式,您都可以使用devel版本执行此操作。