私は列が項目に対応し、行が顧客に対応して各項目を購入する可能性があるという調査データを持っています。データフレームの列間で頻度カウントを取得する効率的な方法
item1 = c("Likely", "Unlikely", "Very Likely","Likely")
item2 = c("Likely", "Unlikely", "Very Likely","Unlikely")
item3 = c("Very Likely", "Unlikely", "Very Likely","Likely")
df = data.frame(item1, item2, item3)
各項目の回答の割合を示す要約表が必要です。今、私はこのプロセスのために各列にtable()を使用しています。その多くのコードを操作します。 plyrを使用してこれを行うことができますか?
現在のソリューション:私は本当にFREQカウントを必要としない
d1<-as.data.frame(table(df$item1))
d1$item1_percent<- d1$Freq/sum(d1$Freq)
names(d1)<-c("Response","item1_freqs","item1_percent")
d2<-as.data.frame(table(df$item2))
d2$item2_percent<- d2$Freq/sum(d2$Freq)
names(d2)<-c("Response","item2_freqs","item2_percent")
d3<-as.data.frame(table(df$item3))
d3$item3_percent<- d3$Freq/sum(d3$Freq)
names(d3)<-c("Response","item3_freqs","item3_percent")
results<-cbind(d1,d2[,2:3],d3[,2:3])
注意、ただのパーセンテージ。
ありがとうございます! dplyr
を使用して
'lapply(DF、関数(x)はprop.table(テーブル(X))) ' – user20650