如何根据列中的值选择数据框中的行

时间:2015-09-18 22:11:31

标签: r function dataframe subset

我有数据框“fish”,它有3列。数据框按第1列中的值排序。我想根据第3列中的最低值选择行。如何仅选择这些行? 我试图通过最低列3值绘制第1列中的数据。

1 个答案:

答案 0 :(得分:0)

此代码创建一个数据框,并返回具有我们称为unif的列的三个最低值的行。您已经拥有了数据框,因此您只需要根据需要选择要过滤的列。在我使用unif的地方,你会使用你的专栏名称。

## create the dataframe
n = 10 
df = data.frame(round(runif(n),1), round(rnorm(n),1))
colnames(df) = c('unif', 'norm')
   unif norm
1   0.4  0.7
2   0.4  0.2
3   0.3  1.3
4   0.8 -0.4
5   0.3 -0.6
6   0.3  1.8
7   0.5 -1.0
8   0.4  0.4
9   0.0  0.2
10  0.6 -0.6

使用该数据框,我们只需要将行过滤到unif列中具有最低三个值的行。

## return the rows with the three lowest values 
df[order(df$unif)[(1:3],]   #### This is the part you need

将返回此结果,我想你想要的是什么:

   unif norm
7   0.5 -1.0
10  0.6 -0.6
4   0.8 -0.4