所以我有关于身份证号码和时间的数据
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), ]
,而不是以10小时为间隔的时间。身份证号码是10个间隔....但我不想要那个输出..到目前为止我得到了这个输出
Id.number Time..s.
10 19.3
20 36.9
答案 0 :(得分:0)
您可以使用%%
(mod)运算符。
data[data$Time %% 10 == 0, ]
答案 1 :(得分: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