Frage

Nehmen wir an meine Daten sieht wie folgt aus:

2372  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE    1.3 05/07/2006
9104  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.34 07/23/2006
9212  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.33 02/11/2007
2094  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE    1.4 05/06/2007
16763 Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.61 05/11/2009
1076  Kansas KS2000111 HUMBOLDT, CITY OF METOLACHLOR   0.48 05/12/2002
1077  Kansas KS2000111 HUMBOLDT, CITY OF METOLACHLOR    0.3 05/07/2006

Ich mag von dem Analyte und eine teilweise Übereinstimmung mit dem Datum der Teilmenge können (nämlich ich will nur das Jahr). Ich habe dies versucht, aber ich weiß, es ist nicht ganz richtig.

 data[data$Analyte=="ATRAZINE" & grep("2006",as.character(data$Date)),]

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Für dieses Problem würde ich mit dem Ansatz in Apprentice Queue Antwort zu extrahieren das Jahr ab dem Zeitpunkt gehen, anstatt zu tun generisches String-Matching. Ich würde vorschlagen:

data[data$Analyte =="ATRAZINE"
     & as.POSIXlt(data$Date, format="%m/%d/%Y")$year == 106]

Aber wenn Sie wirklich regexp Matching zu tun hatte, konnte man grepl verwenden, die eine logische Vektor zurückgibt, anstatt grep, die einen Vektor der Indizes zurück.

data[data$Analyte=="ATRAZINE" & grepl("2006",as.character(data$Date)),]

Andere Tipps

Eine Möglichkeit, mit Datumsliterale:

data[data$Analyte =="ATRAZINE"
     & (data$Date >= '2006-01-01' & data$Date < '2007-01-01')]

Eine andere Art und Weise mit format

data[data$Analyte =="ATRAZINE"
     & format(data$Date, "%Y") == '2006']

Erkennen diese Frage ganz vor einigen Jahren gefragt wurde, sollte hoffentlich jemanden in der Zukunft helfen.

Gebrauchte dplyr für Untereinstellungen mehrere Bedingungen verwendet, und Überprüfen des Jahres, nachdem sie in Datumsart Umwandlung

library(dplyr)

data %>% filter( Analyte=="ATRAZINE" & format(as.Date(Date,format = "%m/%d/%Y"),"%Y") == "2006") 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top