2013-10-09 4 views
0

у меня есть dataframe, как один дается:Подменю столбец в кадре данных класса Хрон вектором даты

x <- c(1:6) 
y <- c("06/01/13 16:00:00", 
     "06/01/13 16:00:00", 
     "06/03/13 20:00:00", 
     "06/03/13 20:00:00", 
     "06/07/13 20:00:00", 
     "06/08/13 20:00:00") 
dfrm <- data.frame(x,y) 
dfrm 
    x    y 
    1 06/01/13 16:00:00 
    2 06/01/13 16:00:00 
    3 06/03/13 20:00:00 
    4 06/03/13 20:00:00 
    5 06/07/13 20:00:00 
    6 06/08/13 20:00:00 

Я хочу, чтобы я Паралипоменон объект:

dfrm$y <- as.chron(dfrm$y, "%m/%d/%y %H:%M") 

Тогда у меня есть вектор дат:

intensives <- c("06/01/13", "06/07/13") 

Тогда я хочу подмножество кадра данных «DFRM» по датам в векторе «интенсивы». Что я хотел бы сделать это было бы что-то вроде:

subset(dfrm, y==dates(intensives)) 

или

subset(dfrm, y %in% dates(intensives)) 

но оба дают мне нулевой результат.

ответ

2

Примечание: В установках большинства людей, где stringAsFactors = TRUE, преобразование в chron завершилось бы неудачно. Они должны были бы сделать это:

dfrm$y <- as.chron(as.character(dfrm$y), "%m/%d/%y %H:%M") 

дата-объекты не Хроны-объектов, но объекты Хрон могут быть принуждены с dates функцией

subset(dfrm, dates(y) %in% dates(intensives)) 
    x     y 
1 1 (06/01/13 16:00:00) 
2 2 (06/01/13 16:00:00) 
5 5 (06/07/13 20:00:00) 
+0

Большое спасибо, это работает! Giulia – Giulia

1

Это потому, что вы сравниваете даты и даты.

Вместо этого subset(dfrm, dates(y) %in% dates(intensives)).

Вы первый поднабор с использованием == никогда не будете работать, независимо от типа данных.

+0

Это работает! Большое спасибо! Giulia – Giulia

Смежные вопросы