R 根据变量的33/67%将人员分配给团队

R 根据变量的33/67%将人员分配给团队,r,dataframe,group-by,quantile,R,Dataframe,Group By,Quantile,我有一个数据集,我希望根据标准将人员分配到不同的组,但是,我希望R能够自动这样做。我将变量分隔为=67 percetile和else dfOCEAN <-df[1:60,1:7] print(colnames(dfOCEAN)) dfOCEAN <- dfOCEAN[complete.cases(dfOCEAN),] i = 0 for(i in 1:length(dfOCEAN$factor_e)){ if(dfOCEAN$factor_e[i] <= quan

我有一个数据集,我希望根据标准将人员分配到不同的组,但是,我希望R能够自动这样做。我将变量分隔为=67 percetile和else

dfOCEAN <-df[1:60,1:7]
print(colnames(dfOCEAN))
dfOCEAN <- dfOCEAN[complete.cases(dfOCEAN),]

i = 0
  for(i in 1:length(dfOCEAN$factor_e)){
    if(dfOCEAN$factor_e[i] <= quantile(dfOCEAN$factor_e, c(.33))){
      dfOCEAN$Introversion[i] <- 1
    }
    else if(dfOCEAN$factor_e[i] >= quantile(dfOCEAN$factor_e, c(.67))){
      dfOCEAN$Introversion[i] <- 2
    }
     else
     dfOCEAN$Introversion[i] <- 3
  }

i = 0
for(i in 1:length(dfOCEAN$factor_c)){
  if(dfOCEAN$factor_c[i] <=quantile(dfOCEAN$factor_c, c(.33))){
    dfOCEAN$Conscientious[i] <- 1
  }
  else if(dfOCEAN$factor_c[i] >= quantile(dfOCEAN$factor_c, c(.67))){
    dfOCEAN$Conscientious[i] <- 2
  }
  else
    dfOCEAN$Conscientious[i] <- 3
}
dfOCEAN尝试这种循环较少(但在缺乏可复制示例的情况下未经测试)的方法:


dfOCEAN$fac_grp Hi 42,令人惊讶的答案,它确实消除了实际循环的需要,但是,查询的后半部分希望自动创建团队,由在这两个因素上排名高或低的人员组成。你有什么想法吗?我用
factor\u e
演示了如何做。我不理解困难。似乎很明显如何为
factor_c
做这件事的确是成功的,但是现在有了数据框,我想将数据框细分为更小的部分,这样每个更小的数据框代表一个团队,其中事实和事实上排名靠前的人被分组在一起,以及低事实和事实等等。我想我可以将数据帧子集,然后对这些数据帧进行随机采样,以组成更小的团队。如果您现在使用
交互(fac\u grp\u e,fac-grp\u c)
您应该能够使用
拆分
功能。同样,您始终未能发布能够为演示创建适当基础的代码,这让您有责任使用这些提示来构建代码。答辩人不负责制作测试案例。
dfOCEANset <- dfOCEAN %>% group_by(c(Introversion, Conscientious)) %>% slice(sample(c(1,2),1))
dfOCEAN$fac_grp <- c(1,3,2)[ findInterval( dfOCEAN$factor_e,
                           quantile( dfOCEAN$factor_e, c(0, .33, .67)), 
                               )}