2015-09-18 135 views
0

我有具有3列的數據框「fish」。數據框按列1中的值排序。我想根據列3中的最低值選擇行。如何僅選擇這些行? 我正在嘗試通過最低的列3值來繪製第1列中的數據。如何根據列中的值選擇數據框中的行

+1

更多信息。 –

+0

歡迎來到StackOverflow,@ kiki33!當要求志願者幫助你解決代碼和/或問題時,我們既不是讀心者,也不是我們有時間來設計自己的數據,以便可能符合你的意圖。爲了幫助我們,請閱讀關於[最小,完整,可驗證示例](http://stackoverflow.com/help/mcve)和[可重現示例]的**(http://stackoverflow.com/questions/ 5963269 /如何對做 - 一個偉大-R重現-例子)。之後,回到這裏並相應地編輯你的問題。 (在此之前,您可能會收到很少或沒有回覆。) – r2evans

回答

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 
相關問題