2015-06-23 44 views
0

我想扩大样本调查并模拟人口。举例来说,如果我有一个像用R扩展调查样本

control weight sex age race 
     1  2 F 23 W 
     2 3.1 M 21 B 
     3 5.3 F 19 W 

以下数据样本(为说明我的问题非常小),在这种情况下,控制代表接受采访的人。例如,我想获得控件1(某人,女性,23岁老人和白人)重复2次(2行)的数据框。当我试图重复3.1倍对照2号和5.3号控制因子时,会出现困难,保留性别,年龄和种族。

有“调查”软件包,但我不知道这种情况是否有某种功能。

如何找到解决此问题的解决方案?

+0

试着在weight列上使用'ceiling'或'trunc'并使用'rep'来复制这些行。包装将是'library(splitstackshape); ?expandRows' i..e。 'expandRows(df1,'weight')'将获得最大值 – akrun

回答

1

如果您需要根据“权重”列中的值扩展数据集的行,则可以从splitstackshape获得一个选项expandRows。这将与df1[rep(1:nrow(df1), weight),]类似。

library(splitstackshape) 
expandRows(df1, 'weight') 
+0

这是很好的解释你的答案,这是因为长度和内容而出现在LQ队列中。 – matrixanomaly

+1

@matrixanomaly感谢您的注意。我将编辑帖子 – akrun

+1

@vasco这可能是正确的答案。 “调查”软件包主要用于分析微数据,这些微数据已经以某种受访者级格式进行分析。 –