Поиск дней с даты в R из файла CSV - PullRequest
0 голосов
/ 10 марта 2011

Я работаю с коэффициентом дат (dateframe $ LastDate), извлеченным из файла csv, и хотел бы рассчитать дни с сегодняшнего дня. Пропущенные значения являются нормой с датами, занимающими около 20% из 1000 строк.

Вот то, что у меня есть до сих пор, и это возвращает мне множитель дней с 1970 года. Просто мне кажется, что нужно выполнить простую работу, поэтому я уверен, что где-то уехал.

NumberOfDays <- ifelse(!is.na(LastDate), Sys.Date()-LastDate, as.numeric(""))

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Вы должны убедиться, что LastDate изначально имеет формат даты.Я не уверен, что здесь требуется as.numeric.


LastDate = as.Date(c("2011-01-01", "2011-02-01", NA, "2011-03-01"))
NumberOfDays = as.numeric(Sys.Date() - LastDate)

Если вы хотите, чтобы NA были равны нулю, используйте

<code>
NumberOfDays[is.na(NumberOfDays)] = 0
1 голос
/ 10 марта 2011

Убедитесь, что ваше поле LastDate отформатировано и читается как дата в R. Вы можете сделать это с помощью кода вроде:

df$LastDate <- as.Date(paste(df$LastDate), "%y%m%d")

Обратите внимание, что в этом случае поле LastDateв формате "гггммдд", этот код может меняться в зависимости от ваших данных.

После того, как вы правильно отформатировали его, вы можете создать новую переменную с помощью plyr:

df <- ddply(df, .(eventID), transform, NumberOfDays = Sys.Date() - LastDate)

В этом случае вы можете использовать eventID, который уникальным образом идентифицирует строки.Если у вас есть несколько идентификаторов, вы можете разделить их запятыми.

Надеюсь, это поможет!

...