R 基于列值筛选数据帧
我想根据第一列R 基于列值筛选数据帧,r,filter,integer,R,Filter,Integer,我想根据第一列v中的整数值筛选数据帧: v P_el 1 2.5 0 2 3.0 78 3 3.5 172 4 4.0 287 5 4.5 426 6 5.0 601 7 5.5 814 8 6.0 1069 9 6.5 1367 10 7.0 1717 11 7.5 2110 12 8.0 2546 13 8.5 3002 14 9.0 3427 15 9.5 3751 16 10.0 3922 输出应如下所示:
v
中的整数值筛选数据帧:
v P_el
1 2.5 0
2 3.0 78
3 3.5 172
4 4.0 287
5 4.5 426
6 5.0 601
7 5.5 814
8 6.0 1069
9 6.5 1367
10 7.0 1717
11 7.5 2110
12 8.0 2546
13 8.5 3002
14 9.0 3427
15 9.5 3751
16 10.0 3922
输出应如下所示:
v P_el
2 3 78
4 4 287
6 5 601
8 6 1069
10 7 1717
12 8 2546
14 9 3427
16 10 3922
我们可以检查这些值除以1后的余数是否为0
dat[dat$v %% 1 == 0, ]
v P_el
2 3 78
4 4 287
6 5 601
8 6 1069
10 7 1717
12 8 2546
14 9 3427
16 10 3922
数据
dat <- read.table(text = " v P_el
1 2.5 0
2 3.0 78
3 3.5 172
4 4.0 287
5 4.5 426
6 5.0 601
7 5.5 814
8 6.0 1069
9 6.5 1367
10 7.0 1717
11 7.5 2110
12 8.0 2546
13 8.5 3002
14 9.0 3427
15 9.5 3751
16 10.0 3922",
header = TRUE)
dat我们可以检查值除以1后的余数是否为0
dat[dat$v %% 1 == 0, ]
v P_el
2 3 78
4 4 287
6 5 601
8 6 1069
10 7 1717
12 8 2546
14 9 3427
16 10 3922
数据
dat <- read.table(text = " v P_el
1 2.5 0
2 3.0 78
3 3.5 172
4 4.0 287
5 4.5 426
6 5.0 601
7 5.5 814
8 6.0 1069
9 6.5 1367
10 7.0 1717
11 7.5 2110
12 8.0 2546
13 8.5 3002
14 9.0 3427
15 9.5 3751
16 10.0 3922",
header = TRUE)
dat如果您对列v
dat
# v P_el
# 1 2.5 0
# 2 3.0 78
# 3 3.5 172
# 4 4.0 287
# 5 4.5 426
# 6 5.0 601
# 7 5.5 814
# 8 6.0 1069
# 9 6.5 1367
# 10 7.0 1717
# 11 7.5 2110
# 12 8.0 2546
# 13 8.5 3002
# 14 9.0 3427
# 15 9.5 3751
# 16 10.0 3922
dat[seq(2,16,by = 2),]
# v P_el
# 2 3 78
# 4 4 287
# 6 5 601
# 8 6 1069
# 10 7 1717
# 12 8 2546
# 14 9 3427
# 16 10 3922
如果您对列v
dat
# v P_el
# 1 2.5 0
# 2 3.0 78
# 3 3.5 172
# 4 4.0 287
# 5 4.5 426
# 6 5.0 601
# 7 5.5 814
# 8 6.0 1069
# 9 6.5 1367
# 10 7.0 1717
# 11 7.5 2110
# 12 8.0 2546
# 13 8.5 3002
# 14 9.0 3427
# 15 9.5 3751
# 16 10.0 3922
dat[seq(2,16,by = 2),]
# v P_el
# 2 3 78
# 4 4 287
# 6 5 601
# 8 6 1069
# 10 7 1717
# 12 8 2546
# 14 9 3427
# 16 10 3922
with(dat,dat[as.integer(v)=v,])
分别dat[as.integer(dat$v)==dat$v,])
with(dat,dat[as.integer(v)==v,])
分别dat[as.integer(dat$v)==dat$v,])