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

时间:2015-04-23 08:56:27

标签: r

所以我有一个包含调查结果的数据框。 问题是,我有几个问题,在单元格中有多个答案。 例如:

q1|q2
answer1;answer2;ansert4 |1986

所以我需要提取&#tidy'特定分析任务的数据集,意思是:在同一列中拆分这些单元格并复制其他指定的列,使其如下所示:

q1|q2
answer1|1986
answer2|1986
answer4|1986

我怎样才能在R中这样做? 我很确定这是一项简单的任务,但我没有任何线索......

2 个答案:

答案 0 :(得分:6)

另一个类似的解决方案是

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

答案 1 :(得分:3)

您可以使用o["childObject"].Count() == 0 ? new List<Item>() : o["childObject"].Select(i => new Item((int)i["id"], (string)i["value"]))).ToList())); 包和data.table功能执行此操作:

strsplit

数据:

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