我對R非常陌生,很難用它來進行基本的數據分析。如何找到R表中每個列的前N個值?
如果我打開一個表格,我怎麼能找到每列前10個值,每個值的出現頻率&計數一起?另外,我還想知道空白的頻率。
使用 「Forbes2000」,從 「HSAUR」 包...
data("Forbes2000", package = "HSAUR")
head(Forbes2000)
的數據包含8列,其中一些( 「等級」, 「姓名」, 「銷售」 等)每行獨特。但是,某些欄目(「國家」,「類別」)並非唯一。
因此,對於每一列,我想找出前10個唯一值,它們的百分比頻率和計數。另外,如果該列至少包含一個空白/ NULL,則會顯示一行顯示相同信息的行。如果每行都是唯一的,則將結果限制爲10行。
所以,像...(以下數字組成)
country percentage rank
United States 85.35% 1
United Kingdom 6.31% 2
Canada 3.12% 3
category percentage rank
Banking 55.28% 1
Conglomerates 20.75% 2
Insurance 12.23% 3
NULL 3.32% 4
Oil & gas operations 2.11% 5
...(etc)...
sales percentage rank
1234.56 0.05% 1
987.65 0.05% 1
986.32 0.05% 1
822.12 0.05% 1
...(etc)...
我看了看周圍的StackOverflow了一段時間,發現了幾個排名的問題,他們他們是2D的性質(How to return 5 topmost values from vector in R?)或單列(how to find the top N values by group or within category (groupwise) in an R data.frame)。我正在尋找一個解決方案,在本質上是3D,作爲附加
names(Forbes2000)
似乎並沒有通過所有列的工作循環。
寫一個小功能'foo',你想要做的一列,然後'lapply(Forbes2000,富)'將其應用到每一列,並在一個不錯的列表中返回的結果是什麼。 – Gregor
我打算寫出格雷戈爾剛剛做的同樣的評論。我認爲這是一個很好的練習,因爲這些都是必要和基本的R技能 - 甚至是用於數據分析的任何語言的必備和基本技能。 –
如果'lapply'看起來太奇怪了,請在列上寫一個for循環。並看看一個很好的在線R文本,如哈德利的高級R. –