2012-11-09 73 views
2

我不久前剛剛開始使用R,作爲Excel的替代品。我處理的數據庫非常龐大,我需要一個新的工具來更好地處理它們。我在這個網站上找到了很多關於R的答案,這些答案幫助我構建了我的腳本,但無法爲某種特定類型的分析找到任何結論。在R中計算唯一的分類值

我的數據是這樣的:

Col1 Col2  Col3 ... Col50 

M 18-24  Single ... Employed 

F 18-24  Married ... Unemployed 

F Under 18 Single ... Employed 

通常我處理已經得到甚至100,000行和30個的數據庫 - 70列,通常不會有每列超過20個獨特的價值觀

什麼我要的是一個子集輸出,這將使我的頻數爲每個唯一 值中的每一列:

Col1 

Variable name/F/M 

Frequency/2/1 

..... 

Col50 

Variable name/Employed/Un-employed 

Frequency/2/1 

能anyb ody至少給我一個暗示,我應該在尋找什麼來計算這些絕對值。我需要一個特殊的包嗎?我能找到一些函數算值,但他們只是指數值(如"table()function"

大衛·羅傑斯

+2

'分類變量table'工作 – Dason

回答

5

table聽起來像你想要什麼。它會給你的每一個出現的次數。值容易地把表給每個專欄中,我們可以只使用lapply

lapply(your_data, table) 
# Example use and output 
lapply(mtcars, table) 
+1

'David' - 我想被扔你了與'表()'是,它是最好的應用於向量(不管是否是分類的)而不是數據框(尤其是大數據框) S)。使用'lapply'可以讓你爲每一列執行一個表格作爲一個向量。如果您只希望選擇列的表,請運行:'lapply(your_data [,c(「ColName1」,「ColName2」)],表)' –

+0

非常感謝。這從理論上解決了這個問題,但實際上,我還有很長的路要走。看來,如果我想用csv寫結果子集,R不會讓我說行數有差別。關於如何克服這個問題的想法?所有最好的大衛 –

+0

我會建議問一個新的問題,並提供所需的輸出。例如 - 你想如何看待輸出文件? – Dason