我正在尝试编写一个条件语句,以便删除27度以上的所有温度值。
我编写了这行代码,但它不起作用:
for(i in 1:length(New_DF$Temperature)){if(New_DF$Temperature[i]>27){New_DF$Temperature <- NA}}
我想删除温度超过27度的整行。
谢谢!
答案 0 :(得分:3)
欢迎使用Stack Overflow。如果你先做一些研究,你会发现你会得到更好的答案,无论是SO规范还是R本身。这是基本的R,在任何介绍性文本的第一章或第二章中都有介绍。
例如,您的问题应该是可重现的:How to make a great R reproducible example?
话虽如此,不是试图编写循环来执行此操作,而是使用向量选择所需的项目,并从data.frame中删除它们:
selector <- New_DF$Temperature>27
New_DF <- New_DF[ !selector, ]
或者在一行中:
New_DF[ !New_DF$Temperature>27, ]
答案 1 :(得分:2)
更轻松地过滤您的数据集。不需要循环。
library(dplyr)
filtered_DF <- filter(New_DF, Temperature < 27)
你也可以使用基础R的子集
filtered_DF <- subset(New_DF, Temperature < 27)