2016-06-03 10 views
0

Zunächst einmal bekommen, lade ich eine CSV-Datei von URLWenn andere Beobachtung zu NA, wenn ich einige obs unter Bedingungen von Datenrahmen

fileurl<-"https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Fss06hid.csv" 

week3<-download.file(fileurl,destfile="./week3.csv",method="curl") 

Dann read.csv verwenden, um in Datenrahmen drehen week31 < -read.csv ("week3.csv" header = TRUE)

enter image description here

Danach müssen die Beobachtung i extrahieren, wenn die Spalten ACR = 3 und AGS = 6

agricultureLogical2<-week31[(week31$ACR==3 & week31$AGS==6),] 

aber das Ergebnis sieht nicht gut aus, der Wert der anderen Beobachtung, die nicht die Bedingung unter jeder Spalte erfüllen wird NA, warum?

enter image description here

+0

Es ist wahrscheinlich, dass Ihre Daten NAs enthalten. Sie sollten '! Is.na()' zu Ihren Auswahlkriterien hinzufügen: 'week31 [(week31 $ ACR == 3 & week31 $ AGS ​​== 6) &! Is.na (week31 $ ACR), &! Is.na (week31 $ AGS),] ' – lmo

+0

Danke, du hast Code funktioniert, aber würdest du dir den Datenframe anschauen, nachdem du die read.csv Funktion benutzt hast. Der Wert der meisten Beobachtungen unter jeder Spalte ist nicht NA, aber nachdem er meinen Code benutzt hat, wurde er zu NA, deshalb stelle ich diese Frage. –

Antwort

0

Verwenden Teilmenge Funktion von% in% an, die zurückgibt, wenn es eine Übereinstimmung gibt

agricultureLogical2 <- subset(week31, ACR%in%3 & AGS%in%6 ,] 
+0

Danke! Kannst du erklären, warum meine Methode nicht genau ist? Vielen Dank! –