簡體   English   中英

如何在R中拆分應用合並幾個變量/列

[英]How to Split-Apply-Combine for several variables / columns in R

我想按組對幾個變量執行功能。

偽數據;

df<-data.frame(rnorm(100,mean=10), 
               rnorm(100,mean=15),
               rnorm(100,mean=20),
               rep(letters[1:10],each=10)
               )
colnames(df)<-c("var1","var2","var3","group1")

在這種情況下,我想將每個變量按組居中。 我想返回一個帶有原始變量和居中變量的數據框。

通常我為此使用PLYR包;

library(plyr)    
ddply(df, "group1", transform, centered_var1= scale(var1, scale=FALSE))

但是,我無法成功地循環執行此功能,也無法想到實現此目的的另一種最小代碼方式。

我對非PLYR解決方案持開放態度...我的主要標准是將代碼保持在最低限度。

使用dplyr

library(dplyr)
df %>% group_by(group1) %>%
  mutate_each(funs(scale(., scale=F))) -> res

colwise函數可能就是您想要的。

library("plyr")
ddply(df, .(group1), colwise(scale, scale = FALSE))

這是你想要的嗎?

ddply(df, "group1", transform, centered_var1= scale(var1, scale=FALSE),
      centered_var2 = scale(var2, scale=FALSE),
      centered_var3 = scale(var3, scale=FALSE))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM