所以我有一个包含调查结果的数据框。 问题是,我有几个问题,在单元格中有多个答案。 例如:
q1|q2
answer1;answer2;ansert4 |1986
所以我需要提取&#tidy'特定分析任务的数据集,意思是:在同一列中拆分这些单元格并复制其他指定的列,使其如下所示:
q1|q2
answer1|1986
answer2|1986
answer4|1986
我怎样才能在R中这样做? 我很确定这是一项简单的任务,但我没有任何线索......
答案 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