我有5个分类变量:年龄(5个级别),性别(2个级别),区域(4个级别),qmat(5个级别)和qsoc(5个级别),总共1000个独特组合。每个唯一组合具有相应的数据值(例如,群体大小)。我想将此数据分配到1000 x 6表,其中前五列包含年龄,性别,区域,qmat,qsoc的索引,第6列包含数据值。
我想避免使用在R中效率低下的嵌套for循环(我的一些数据集将具有超过1000个唯一组合)。我知道R中存在很多用于并行操作的工具(但我不熟悉它们)。有没有一种有效的方法来使用并行/向量运算执行上述变量赋值?任何建议或参考将不胜感激。
答案 0 :(得分:0)
您很难理解原始数据的样子,但假设您在数据框中包含数据,则可能需要使用aggregate()
。
# simulating a data frame
set.seed(1)
N = 9000
df = data.frame(pop=rnorm(N),
age=sample(1:5, N, replace=T),
sex=sample(1:2, N, replace=T)
)
# 'aggregate' this data frame by 'age' and 'sex'
newData = aggregate(pop ~ age + sex, data=df, FUN=sum)
答案 1 :(得分:0)
R函数expand.grid()将解决我的问题,例如: expand.grid(列表(年龄,性别,区,QMAT,qsoc))
感谢所有回复,对于我的问题措辞可能含糊不清,我深表歉意。