我想寫一個條件聲明,以便刪除27度以上的所有溫度值。聯合聲明刪除溫度超過一定程度
我寫這行代碼,但它不工作:
for(i in 1:length(New_DF$Temperature)){if(New_DF$Temperature[i]>27){New_DF$Temperature <- NA}}
而且我想刪除整個行具有高於27度的溫度。
謝謝!
我想寫一個條件聲明,以便刪除27度以上的所有溫度值。聯合聲明刪除溫度超過一定程度
我寫這行代碼,但它不工作:
for(i in 1:length(New_DF$Temperature)){if(New_DF$Temperature[i]>27){New_DF$Temperature <- NA}}
而且我想刪除整個行具有高於27度的溫度。
謝謝!
歡迎來到Stack Overflow。如果你先做一些研究,你會發現你會得到更好的答案,無論是在SO規範還是R本身。這是基本的R,涵蓋在任何介紹性文本的第一或第二章中。
例如,你的問題應該是可重複的:How to make a great R reproducible example?
雖這麼說,而不是試圖去寫一個循環來做到這一點,使用向量來選擇你需要的項目,並從數據中刪除。框架:
selector <- New_DF$Temperature>27
New_DF <- New_DF[ !selector, ]
或者在同一行:
New_DF[ !New_DF$Temperature>27, ]
容易只是過濾您的數據集。無需循環。
library(dplyr)
filtered_DF <- filter(New_DF, Temperature < 27)
你也可以使用基礎R的子集
filtered_DF <- subset(New_DF, Temperature < 27)
當我運行你的代碼行時,即使溫度是數值,我得到'<'對於因素沒有意義。你知道我爲什麼得到這個嗎?非常感謝! –
str(New_DF)並查看一切是什麼類。 –
我檢查過,它告訴我所有的變量都是因素,但是當我使用模式(New_DF $ Temperature)時,我得到的溫度是數字 –
謝謝你的幫助,但遭到刪除低於27的所有溫度值,並保持27以上的溫度值數據幀。我怎麼能做到相反? –
再一次,只是閱讀一個基本的介紹。如果你拿走NOT運算符(!),它將反轉。或者將>轉換爲<。 –
沒錯,但是爲什麼它不能將溫度低於27℃的數據淹沒我? –