R 从分组变量的可能组合创建完整数据框

R 从分组变量的可能组合创建完整数据框,r,missing-data,R,Missing Data,如果以前有人问过这个问题,我很抱歉,但是当有三个分组变量时,我找不到我需要的答案 我需要用可能的变量组合填充数据帧,但在组合未出现时为非分组观测值插入NAs。假设有一个包含三个分组变量的数据框:年份、地理位置和分组: Year <- rep(2008:2019,each=50) Geography <- rep(1:60,each=10) Grouping <- rep(1:4,each=150) value <- seq(rnorm(600,mean=0,sd=1))

如果以前有人问过这个问题,我很抱歉,但是当有三个分组变量时,我找不到我需要的答案

我需要用可能的变量组合填充数据帧,但在组合未出现时为非分组观测值插入NAs。假设有一个包含三个分组变量的数据框:年份、地理位置和分组:

Year <- rep(2008:2019,each=50)
Geography <- rep(1:60,each=10)
Grouping <- rep(1:4,each=150)
value <- seq(rnorm(600,mean=0,sd=1))
df=cbind(Year,Geography)
df=as.data.frame(cbind(df,value))

如何将数据帧更改回600的长度(如果三个分组变量的所有可能组合都存在,那么长度就是600),但如果组合在数据帧中,则在值所在的位置插入NAs?请注意,每个分组变量的所有唯一观测值都会在数据集中的某个点出现。

merge(expand.grid(Year,Geography),df)
。请注意,如果向量中有任何一个是字符,那么在向量上使用
cbind
会给您一个字符矩阵而不是数据帧,并且您可能忘记了
分组
。构造
as.data.frame(cbind…)
是一个令人讨厌的东西,出于某种原因,它不断出现。有人应该追查这个僵尸代码的来源,并在它的心脏插入一根木桩。我还严重怀疑
向量是否是你想象的那样。。。有点像新手。我感谢你的评论。
df2=df[-c(15,60,150,510),]