我对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. –