2017-07-31 52 views
-2

我對R非常陌生,我試圖回答一個「簡單」的問題。隨着時間的推移,我有一個DataFrame分離物和它們的光密度(OD)。我正在尋找OD從起點開始增加一倍的觀點。使用Excel或R來弄清楚我的數據在什麼時間加倍

簡化的數據幀

Time (mins) R8-5081 R8-5088 R8-5095 
0    0.766 0.895 0.623 
15    0.531 0.593 0.436 
30    0.531 0.581 0.408 
45    0.522 0.593 0.407 
60    0.52  0.6  0.409 
75    0.527 0.612 0.416 
90    0.527 0.616 0.416 

我想在其中用於R8-5081的OD變爲1.06(第一行,其中時間= 0通常不是真值)的時間。

在Excel中可以做到這一點,R風格的方法是什麼?

回答

0

您應該在您的問題中包含可重複的代碼,以便我們可以測試您的數據。這就是說,我認爲這應該起作用。

min(which(df$`R8-5081` >= 2 * df$`R8-5081`[2])) 
+0

我不知道如何包含「可重現」的代碼,誠實。正如我所說,我對編碼一般來說太陌生,不知道該怎麼做。這就是爲什麼我在這裏看看我應該做什麼或去哪裏): –

+0

https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example 這個鏈接非常適合描述它。基本上你寫了一些簡短的代碼,以便我們可以複製/粘貼到R,命中運行,並處理你的樣本數據。 – AaronT86

+0

提供的答案中的任何一個都可以給你你需要的東西嗎?如果是這樣,你能標記其中一個是正確的嗎? – AaronT86

0

下面的代碼將提取所有行(S),其中數據點加倍:

od[which(od$R8.5081 == 2*od$R8.5081[2]), ] 
od[which(od$R8.5088 == 2*od$R8.5088[2]), ] 
od[which(od$R8.5095 == 2*od$R8.5095[2]), ] 

這裏, 'OD' 是包含數據點的數據幀。 (你可以讀取並存儲在這個變量中的excel/csv)

如果需要輸出只是OD加倍的第一行,那麼;

od[min(which(od$R8.5081 == (2 * od$R8.5081[2]))),] 
od[min(which(od$R8.5088 == (2 * od$R8.5088[2]))),] 
od[min(which(od$R8.5095 == (2 * od$R8.5095[2]))),] 
+1

你應該編輯這個以僅提取出現這種情況的第一個觀測值 – sconfluentus

+0

這是否適用於所有列?什麼可以使數據框架,並使其成爲一個向量? –

+0

您可以如上所示爲每列運行命令,並獲得預期的結果。 – Sagar

相關問題