如何根据R中的不同列值删除行?

时间:2018-05-03 21:04:01

标签: r

我有一个24小时的时间序列(这是一个非常大的数据),我必须在某些时间段内工作。就像在小时= 7,15和23。

我必须删除对应于1,2,3,4 ......小时的所有其他行。我必须在40小时的间隙内过滤行。我必须始终坚持与一天中的7,15和23h相对应的那些。

我一直在努力创建另一个data.frame,只包括这些行,甚至只有NULL这些毫无价值的行。

我从我的数据中添加了一个打印件。列代表月,日和日。 1955年。它一直持续到1955年的最后一天和小时记录。

数据示例

Data Example.

1 个答案:

答案 0 :(得分:1)

使用基本R提取运算符基于屏幕捕获中的数据选择第7,15和23小时的一种方法如下。

Tempo <- c(0,3600,7200,10800,1440,18000,21600,25200,28800,
           23400,36000,39600,43200,46800,50400,5400,57600,
           61200,64800,68400,72000,75600,79200,82800)
Ano <- rep(1955,24)
Mes <- rep(1,24)
Dia <- rep(1,24)
Hora <- 0:23
NiveldoMar <- c(1.07,0.91,0.81,0.78,0.91,1.05,1.32,1.57,
               1.60,1.48,1.30,1.07,1.10,1.22,1.42,1.45,1.40,1.32,
               1.27,1.40,1.62,NA,NA,NA)
ContoleInterno <- rep(0,24)

data <- data.frame(Tempo,Ano,Mes,Dia,Hora,NiveldoMar)
# select data from hours 7,15, and 23
data[data$Hora %in% c(7,15,23),]

...和输出:

> data[data$Hora %in% c(7,15,23),]
   Tempo  Ano Mes Dia Hora NiveldoMar
8  25200 1955   1   1    7       1.57
16  5400 1955   1   1   15       1.45
24 82800 1955   1   1   23         NA
>