を要約するために複数の異なるGROUP_BY変数(dplyr)を使用して、私は6列が含まれているデータフレーム「my_data」を持っている:にデータフレーム
group1.members group2.members group3.members price price.2 price.3
1 1 1 800 877 334
1 2 1 850 877 334
2 2 1 859 877 334
3 1 1 859 877 334
3 1 2 870 877 334
2 2 2 870 877 334
2 3 2 870 877 334
1 3 3 880 877 334
私はROWでまとめたいと思い、my_dataの「価格」の列group_byをそれぞれ別のgroup.memberカラムで使用して、いくつかの別々のデータフレームを作成します。しかし、group_byはこれを許可していないのでしょうか?言い換えれば
my_data <- as.data.frame(data)
num_of_years <- c(1,2,3)
for(i in 1:length(num_of_years)){
price_means <- my_data %>% group_by(my_data[i]) %>%
select(-value) %>%
summarise_each(funs(mean(., na.rm=TRUE))) %>%
ungroup
assign(paste("PriceMeans",i,sep=""),price_means, envir = .GlobalEnv)
}
:I = 1、使用GROUP_BYため
- (group1.members)は、i = 2、使用のために
-
この
は私が考えていたものですGROUP_BY(group2.members)は、i = 3、使用GROUP_BYため - (group3.members)
EDIT:以下の私の解決
for(i in 1:length(my_groups)){
# construct the group to select
current.group <- my_groups[i]
current.group <- paste0("memb_", current.group)
# construct the groups to exclude
groups.to.drop <- my_groups[-i]
groups.to.drop <- paste0("memb_", groups.to.drop)
# Get Means
Means <- data %>% group_by_(as.name(current.group)) %>%
select(- c(ID, get(groups.to.drop))) %>%
summarise_each(funs(mean(., na.rm = TRUE)))
Means <- Means[,-1:-(length(my_groups)-1)]
Means <- as.list(Means)
assign(x = paste0("Means_",i),
value = Means,
envir = parent.env(new.env())
}
あなたが執筆のlazyeval方法を使用する必要がありますあなたの機能。 – theArun
ありがとう!私はlazyevalのドキュメントを見ましたが、これを実装する方法を理解していませんでした。おそらく短い例を提供できますか? – wsp1morlet
この特定のリンクは、lazyevalがdplyrライブラリ[link](https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html)によって処理される方法を説明しています – theArun