按其方差索引原始数据

时间:2015-07-19 22:23:27

标签: r

我正在尝试对数据集进行排序,获取每行的方差,然后创建一个包含每行顶部方差的新对象。例如,据我所知,是:

data(iris)
#The fifth column in iris is a string vector so I will exclude it'
newvar<-apply(iris[1:4],1,var)
newvar.srt<-sort(newvar, decreasing = TRUE)

到目前为止一切顺利?我现在的问题是如何回到虹膜数据集并创建一个新对象,其中只包含前30个方差的行?

我考虑过将newvar与newvar.srt [1:30]进行比较,尝试索引原始列,然后将它们作为newobject&lt; -iris [top30.variance.rows,]索引到新对象中,但无法获取它起作用。

1 个答案:

答案 0 :(得分:2)

您正在寻找order。试试这个:

data(iris)
nv <- apply(iris[1:4], MARGIN = 1, FUN = var)
n_rows = 30
data_sample = head( iris[order(nv, decreasing=TRUE), ], n_rows)