例如,我有一个像cars
这样的数据框,我想创建一个数据框架汽车的子集,其实例为cars$speed>18
和cars$dist<76
。
newdf <- cars[c(cars$speed>18,cars$dist<76),]
但是当我运行这个时,我得到了这个结果:
speed dist
36 19 36
37 19 46
38 19 68
39 20 32
40 20 48
41 20 52
42 20 56
43 20 64
44 22 66
45 23 54
46 24 70
47 24 92
48 24 93
49 24 120
50 25 85
NA NA NA
NA.1 NA NA
NA.2 NA NA
NA.3 NA NA
.
.
.
NA.41 NA NA
NA.42 NA NA
怎么可以避免得到这个NAs?甚至这是创建具有2个条件的子集的正确方法?
答案 0 :(得分:5)
newdf <- cars[cars$speed>18 & cars$dist<76,]
> newdf
speed dist
36 19 36
37 19 46
38 19 68
39 20 32
40 20 48
41 20 52
42 20 56
43 20 64
44 22 66
45 23 54
46 24 70
答案 1 :(得分:4)
试试这个:
newdata <- cars[ which(cars$speed>18 & cars$dist<76), ]
> newdata
speed dist
36 19 36
37 19 46
38 19 68
39 20 32
40 20 48
41 20 52
42 20 56
43 20 64
44 22 66
45 23 54
46 24 70
答案 2 :(得分:3)
我总是想给出一个使用dplyr
的答案,因为它是一个很棒的图书馆,用于组织和#34;争吵&#34;数据:
library(dplyr)
newdf2 = filter(cars, speed > 18 & dist < 76)