我在排序直方图的因素时遇到了问题。 我的数据是这样的:
ID onderlaag
1 strooisel
2 geen
3 strooisel
4 kniklaag
5 gras
6 geen
.
.
我使用barplot()函数制作直方图:
barplot(表(onderlaag),ylim = C(0250))
此处直方图条的顺序是按字母顺序排列的,但我希望按照以下顺序排序:strooisel - geen - gras - kniklaag。
我使用了因子功能,但是在我完成此操作后,我的条形图已经没有任何条形
了onderlaag2 =因子(onderlaag,水平= C( “Strooisel”, “Geen的”, “节”, “Kniklaag”))
我该怎么做?
答案 0 :(得分:1)
请在下次使用dput
# construct an example data frame similar in structure to the question
x <- data.frame( ID = 1:4 , ord = c( 'b' , 'a' , 'b' , 'c' ) )
# look at the table of x, notice it's alphabetical
table( x )
# re-order the `ord` factor levels
levels( x$ord ) <- c( 'b' , 'a' , 'c' )
# look at x
x
# look at the table of x, notice `b` now comes first
table( x )
# print the results, even though it's not a histogram ;)
barplot( table(x) , ylim = c( 0 , 5 ) )
答案 1 :(得分:1)
我认为你所要求的只是一种排序输入的方式,我们可以很容易地将其作为'barplot'函数的一部分,如下所示:
barplot(table(onderlaag)[,c(4,1,2,3)], ylim=c(0,250))
'table'功能会自动为您的列排序,但您可以在之后手动指定订单。它的语法如下:
table(your_data)[rows_to_select, columns_to_select]
your_data
是表格中的数据,rows_to_select
是要应用于行的过滤器列表,columns_to_select
是要应用于行的过滤器列表列。如果不指定rows_to_select
,我们会选择所有行,并将columns_to_select
指定为c(4,1,2,3)
,我们会按特定顺序选择所有四列。