删除温度超过一定程度的承诺声明

时间:2017-02-04 12:21:22

标签: r

我正在尝试编写一个条件语句,以便删除27度以上的所有温度值。

我编写了这行代码,但它不起作用:

for(i in 1:length(New_DF$Temperature)){if(New_DF$Temperature[i]>27){New_DF$Temperature <- NA}}

我想删除温度超过27度的整行。

谢谢!

2 个答案:

答案 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)