У меня есть набор данных с двумя значениями для каждого date
, как это:R: данные экстракт на основе даты, «если дата меньше, чем»
date x y
1 2013-05-01 1 2
2 2013-05-02 2 2
3 2013-05-03 3 2
date
в формате as.Date
, используя пакет lubridate
.
Теперь я хочу иметь mean
двух значений, за исключением определенного промежутка времени, в котором я хочу использовать значения x
.
Я попытался следующие:
mean=(x+y)/2
newdata=ifelse((data$date < 2013-10-01 | date$date > 2014-04-09), mean, x)
но если просто взять mean
на все даты.
Можно ли использовать отношения с датой больше или меньше? Любые предложения о том, как сделать эту работу?
Заранее спасибо
Можете ли вы использовать воспроизводимый набор данных, как вы видите при вводе 'data()'? Кстати, что вы подразумеваете под «форматом» ... вы имеете в виду что-то о классе? 'as.Date' является базовой функцией, если я правильно понимаю, но это не класс, а формат задается оператором' origin' ... –
Я привел данные примера с: 'date = c (" 2013 -05-01 "," 2013-05-02 "," 2013-05-03 "," 2013-05-04 ") x = c (1,2,3,4) y = c (2, 2,2,2) библиотека (lubridate) date = as.Date (as.character (date), format = "% Y-% m-% d") data = data.frame (date, x, у) ' , для которого выше, будет, например, изменения в: ' означают = (х + у)/2 NewData = IfElse ((дата <2013-05-02 | дата> 2013-05-03), среднее значение, x) ' – Anne
и да, я имел в виду класс.Еще новичок в R, извините :) typing 'class (date)' приводит к 'Date' – Anne