2012-04-09 75 views
1

我要呼籲在R. 10個變量table()功能是有一杆做的任何方式,而無需分別像table(v1)table(v2) ... table(v10)稱他們調用表()?R:在多變量

回答

5

如果你的變量在data.frame排列爲列,你可以使用lapply

df <- data.frame(aa = rpois(10, 4), bb = rpois(10, 3), c = rpois(10, 7)) 

tabList <- lapply(df, table) 

然後你得到一個列表以及各種表:

> tabList 
$aa 

1 3 4 5 6 7 
2 3 2 1 1 1 

$bb 

1 2 3 4 5 
1 2 4 1 2 

$c 

3 4 5 6 7 9 11 12 
1 1 1 3 1 1 1 1 

編輯:

對於跨多個data.frames的變量,您可以嘗試將它們放入列表中,然後使用lapply再次:

df2 <- df[sample(rownames(df), 15, replace = TRUE), ] 

df3 <- df[sample(rownames(df), 20, replace = TRUE), ] 

dfList <- list(df = df, df2 = df2, df3 = df3) 

lapply(dfList, function(x) lapply(x, FUN = table)) 
+0

完美!非常感謝。當變量不是來自同一個數據幀時,有沒有類似的東西? – user702432 2012-04-09 10:00:49

+0

@ user702432,這也應該是可能的。請參閱下面的我的建議**編輯** – BenBarnes 2012-04-09 10:32:24

+0

優秀。謝謝BenBarnes。 – user702432 2012-04-09 10:45:11