Pregunta

Supongamos que mi aspecto de datos de esta manera:

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

Quiero ser capaz de subconjuntos por el analito y una coincidencia parcial en la fecha (es decir, sólo quiero el año). He estado tratando de esto, pero sé que no está del todo bien.

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

¿Alguna sugerencia?

¿Fue útil?

Solución

Para este problema me gustaría ir con el enfoque en la respuesta de la extracción del año a partir de la fecha en lugar de hacer la coincidencia de cadenas genérica del aprendiz cola. Yo sugeriría:

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

Pero si realmente tenía que hacer coincidente expresión regular, se podría utilizar grepl que devuelve un vector lógico en lugar de grep que devuelve un vector de índices.

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

Otros consejos

Una forma de utilizar literales de fecha:

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

Otra forma de utilizar format

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

Date cuenta esta pregunta se ha hecho bastante años atrás, esperemos que debería ayudar a alguien en el futuro.

dplyr usados ??para la subajustes utilizando múltiples condiciones, y la comprobación de un año después de la conversión en tipo fecha

library(dplyr)

data %>% filter( Analyte=="ATRAZINE" & format(as.Date(Date,format = "%m/%d/%Y"),"%Y") == "2006") 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top