0

所以我有关于身份证号码和时间的数据

Id number   Time(hr)
1   5
2   6.1
3   7.2
4   8.3
5   9.6
6   10.9
7   13
8   15.1
9   17.2
10  19.3
11  21.4
12  23.5
13  25.6
14  27.1
15  28.6
16  30.1
17  31.8
18  33.5
19  35.2
20  36.9
21  38.6
22  40.3
23  42
24  43.7
25  45.4

我想要这个输出

   Time Id number
    10  5
    20  10
    30  16
    40  22

所以我希望时间间隔为 10 小时并获取与该特定小时相对应的 ID...我决定使用此代码data <- data2[seq(0, nrow(data2), by=5), ] ,但不是 Time 间隔为 10 小时...ID 号为 10 个间隔....但我不想要那个输出..到目前为止我得到这个输出

Id.number Time..s.
        10     19.3
      20     36.9
4

2 回答 2

0

我使用cut()cumsum(table())但我并没有完全得到您期望的答案。你到底是怎么计算的?

# first load the data
v.txt <- '1   5
2   6.1
3   7.2
4   8.3
5   9.6
6   10.9
7   13
8   15.1
9   17.2
10  19.3
11  21.4
12  23.5
13  25.6
14  27.1
15  28.6
16  30.1
17  31.8
18  33.5
19  35.2
20  36.9
21  38.6
22  40.3
23  42
24  43.7
25  45.4'
# load in the data... awkwardly...
v <- as.data.frame(matrix(as.numeric(unlist(strsplit(strsplit(v.txt, '\n')[[1]], ' +'))), byrow=T, ncol=2))
tens <- seq(from=0, by=10, to=100)
v$cut <- cut(v$Time, tens, labels=tens[-1])
v2 <- as.data.frame(cumsum(table(v$cut)))
names(v2) <- 'Time'
v2$Id <- rownames(v2)
rownames(v2) <- 1:nrow(v2)
v2 <- v2[,c(2,1)]
rm(v, v.txt, tens) # not needed anymore
v2 # the answer... but doesn't quite match your expected answer...

  Id Time
1 10    5
2 20   10
3 30   15
4 40   21
5 50   25
于 2013-03-11T11:11:35.540 回答
0

您可以使用%%(mod) 运算符。

data[data$Time %% 10 == 0, ]

于 2013-03-11T10:17:38.793 回答