1
私は2つの変数siteとpurchaseを持つデータフレーム(df)を持っています。dplyr()で行を追加するtransform()
dplyr()を使用してサイトでデータをグループ化して購入し、グループ化されたデータの数と割合を取得したいと考えています。私はまた、購入によってグループ化されたすべてのサイトのデータを表すALLSITESというローをフィーチャーにすることをお勧めします。そうすれば、dfgoalに似たようなチブルになります。
問題は、私の現在のコードは私にALLSITESの行を取得しないということです。私は基底のR関数をdplyr()に追加しようとしましたが、これはうまくいきません。
ご協力いただければ幸いです。
始点(DF):
df <- data.frame(site=c("LON","MAD","PAR","MAD","PAR","MAD","PAR","MAD","PAR","LON","MAD","LON","MAD","MAD","MAD"),purchase=c("a1","a2","a1","a1","a1","a1","a1","a1","a1","a2","a1","a2","a1","a2","a1"))
所望の結果:
dfgoal <- data.frame(site=c("LON","LON","MAD","MAD","PAR","ALLSITES","ALLSITES"),purchase=c("a1","a2","a1","a2","a1","a1","a2"),bin=c(1,2,6,2,4,11,4),pin_per=c(33.33333,66.66667,75.00000,25.00000,100.00000,73.33333,26.66666))
現在コード:
library(dplyr)
df %>%
group_by(site, purchase) %>%
summarize(bin = sum(purchase==purchase)) %>%
group_by(site) %>%
mutate(bin_per = (bin/sum(bin)*100))
df %>%
rbind(df, transform(df, site = "ALLSITES") %>%
group_by(site, purchase) %>%
summarize(bin = sum(purchase==purchase)) %>%
group_by(site) %>%
mutate(bin_per = (bin/sum(bin)*100))
次いで' DF1%>%グループ解除(仮定結合)%>%GROUP_BY(サイト= 'ALLSITES'、購入)%> bin_per = 100 *(bin/sum(bin)))%>%bind_rows(df1、。) '% – akrun