因子变量频率的直方图(编辑:现在有样本数据!)

时间:2017-02-26 15:26:57

标签: r ggplot2

此问题与具有类似标题的另一个问题类似,但不相同。

我有一个包含因子变量的数据框。我想绘制一个直方图(最好在ggplot2),它显示x轴上的整数,以及在y轴上有x个观测值的因子计数。所以我可以看到x1因子有1个观察值,x2个因子有2个观察值等等。

我自己无法解决这个问题。任何帮助将不胜感激。

编辑:我的问题与Make Frequency Histogram for Factor Variables不同。

那个问题问道,“我的数据框中每个因子级别有多少?”也就是说,有多少只狗,多少只猫,多少只鸟。

我在问,“有多少因子级别有x行?”也就是说,有多少动物有2排?如果在我的数据框中有3只鸟和3只狗,我想要一个直方图,显示有2个因子水平有3个观察值。

EDIT2:嗯。我想我不是在解释自己。我已经从Kaggle比赛中下载了训练数据。数据是一套公寓出租清单。数据中的一个字段是building_id。我已将building_id字段分解。我想绘制:有多少栋建筑有1个列表?有多少栋建筑有2个房源?等

示例:

listingid  buildingid bedrooms bathrooms etc...
001        001        1        1
002        001        2        1
003        001        1        1
004        001        2        1
005        002        1        1
006        002        2        1
007        002        1        1
008        003        2        2
009        003        1        1
010        004        2        2
011        004        3        1
012        005        1        1
013        006        2        2
014        007        2        1
015        008        1        1
016        009        1        1    

我想要的情节会显示:

            5| X
 num        4| X
 bldgs.     3| X
            2| X   X
            1| X   X   X   X
             +--------------------------------
num listings:  1   2   3   4

该图显示一栋建筑物(建筑物001)有4个列表,一栋建筑物(建筑物002)有3个列表,两栋建筑物(003和004)有2个列表,5栋建筑物(005,006,007,008, 009)有一个列表。

1 个答案:

答案 0 :(得分:0)

要获取因子的级别数,我们可以使用FOR r_time IN c1 LOOP 。要为每个因素执行此操作,我们需要知道data.frame中的哪些变量是因子。我们使用INSERT INTO time_calendar_dim_2(DAY_ID,DAY_TIME_SPAN,DAY_END_DATE) VALUES (SEQ_Time_Dim_IDSTART.nextval,r_time.DAY_ID,r_time.DAY_TIME_SPAN,r_time.DAY_END_DATE); **END LOOP; END;** / 执行此类检查。 对这两个命令进行矢量化,然后对它们进行条形图处理。

length(levels(myfactor))

在ggplot2中,我会做类似下面的事情。

which(is.factor(myvariable))
这是你想要的吗?如果没有,请澄清您的问题with example data

纯粹的语义,但你想要绘制的是而不是直方图