2017-08-29 1 views
-2

Zum Beispiel habe ich einen Datenrahmen wie cars und ich möchte eine Untergruppe von Datenrahmen Autos mit Instanzen, cars$speed>18 und cars$dist<76 erstellen.Subsetting einen Datenrahmen mit zwei Bedingungen

newdf <- cars[c(cars$speed>18,cars$dist<76),] 

aber wenn ich dieses laufen lasse, erhalte ich dieses Ergebnis:

 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 

Wie vermeiden könnte diese NAs zu bekommen? Oder ist das der richtige Weg, um eine Teilmenge mit 2 Bedingungen zu erstellen?

Antwort

3

Ich mag immer eine Antwort zu geben, die dplyr verwendet, weil es eine große Bibliothek ist für die Organisation und „Gerangel“ Daten: diese

library(dplyr) 
newdf2 = filter(cars, speed > 18 & dist < 76) 
4

Versuchen:

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 
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 
+0

Was ist das Punkt der Verwendung von 'c()'? – Masoud

+0

@Masoud, keine, danke für den Hinweis! – HannekeLettinga

Verwandte Themen