我想使用plyr,但在使用多個變量時遇到困難。 這裏是一個例子。在plyr中使用多個變量
df <- read.table(header=TRUE, text="
Firm Foreign SME Turnover
A1 N Y 200
A2 N N 1000
A3 Y Y 100
A1 N N 500
A2 Y Y 200
A3 Y Y 1000
A1 Y N 200
A2 N N 1000
A2 N Y 100
A2 N Y 200 ")
我想創建一個表,它總結了兩個變量的營業額。 基本上將下述代碼
t1 <- ddply(df, c('Firm', 'Foreign'), summarise,
BudgetForeign = sum(Turnover, na.rm = TRUE))
t2 <- ddply(df, c('Firm', 'SME'), summarise,
BudgetSME = sum(Turnover, na.rm = TRUE))
與結果如下
res <- read.table(header=TRUE, text="
Firm A1 A2 A3
BudgetForeign 200 200 1100
BudgetSME 200 500 1100")
res
我怎樣才能做到這一點而不做多的操作和子集,之後結合?
在此先感謝。
感謝賈斯汀。至少我知道從哪裏開始。我有一個問題,但。它將如何工作我希望Foreign和SME的不同值分別爲「Y」和「N」。 – user1043144 2012-08-16 16:42:52
@ user1043144不知道我明白。您可以將它添加到'dcast'中的公式中,並將其從'df.m []'中移除。看我的編輯。 – Justin 2012-08-16 16:57:13
感謝賈斯汀。庫(reshape2) df.m < - 融化(DF,id.var = C( '事務所', '週轉')) X < - dcast(df.m,可變+值〜事務所value.var = 'Turnover',fun.aggregate = sum) res < - rbind( BudgetForeign = subset(x,variable =='Foreign'&value =='Y'), BudgetSME = subset(x,variable == 「中小企業」和值==「Y」) ) – user1043144 2012-08-16 18:42:59