R подмножество строк на основе сравнения двух полей даты, где одно меньше

Совершенно новый в R.

У меня есть таблица данных с двумя полями даты: ReportingPeriodStart Classdate

Мне нужны два набора данных: те строки, где ReportingPeriodStart меньше Classdate, и один, где Reportingperiodstart больше, чем Classdate.

Я думал, что смогу сделать что-то вроде этого:

PreStuff <- subset(boost, REPORTINGPERIODENDDATE < WaveStart, 
select = c(PROVIDERNAME,DEPARTMENT,SPECIALTY,
REPORTINGPERIODENDDATE,WaveStart TOSH,TOUD,TIMEINSYS,SEVENASEVENP,PJTIME,PROFSCORE)
)

но я получаю error: unexpected symbol in "prestuff ...."

Я просмотрел похожие сообщения, но у каждого из них есть набор данных, представляющий собой список зашитых дат. У меня есть два поля даты, которые мне нужно сравнить.

Я только что установил R несколько дней назад и в основном могу использовать функцию plot(x,y).

Как можно захватить те строки, в которых одно поле даты меньше другого поля даты?


person Barbara Eckstein    schedule 21.02.2020    source источник
comment
Обратите внимание на пакет lubridate, он упрощает работу с датами.   -  person TJ87    schedule 21.02.2020
comment
См. здесь, чтобы задать вопрос R, с которым люди могут помочь. . Это включает в себя образец данных, весь необходимый код и четкое объяснение того, что вы пытаетесь сделать, а что не работает.   -  person camille    schedule 22.02.2020
comment
Спасибо за ссылку на страницу о том, чтобы сделать хороший пост. К сожалению, я ничего не понимаю. Мне потребуется некоторое время, чтобы понять, что все это значит. А пока у меня есть таблица с тремя столбцами: Имя Date1 Date2 Мне нужно сделать два набора данных из этой таблицы: все строки, где Date1 меньше date2, и все строки, где Date1 больше date2. Я пробовал использовать Date1 ‹Date2, но считаю, что получаемая мной ошибка означает, что символ« меньше »не работает. Итак, я попробовал Lubridate и взял разницу и искал разницу ‹0 или разницу› 0.   -  person Barbara Eckstein    schedule 22.02.2020


Ответы (1)


Ваша проблема - это оператор выбора. В частности, кавычки и WAVESTART TOSH, где, скорее всего, забыли запятую, или имеют дело с неявным преобразованием. См. Справку:

Аргумент select существует только для методов для фреймов данных и матриц. Он работает, сначала заменяя имена столбцов в выражении выбора соответствующими номерами столбцов во фрейме данных, а затем используя полученный целочисленный вектор для индексации столбцов. Это позволяет использовать стандартные соглашения об индексировании, чтобы, например, можно было легко указать диапазоны столбцов или можно было отбросить отдельные столбцы (см. Примеры).

So

  1. Вы должны передать вектор символьных аргументов, чтобы ссылаться на имена столбцов для выбора. Попробуйте c("PROVIDERNAME", ... вместо c(PROVIDERNAME, ...). В противном случае R начнет поиск векторных логических элементов или символов с именем PROVIDERNAME в рабочей области, чтобы получить индексы.
  2. У вас есть имя столбца с пробелом WaveStart TOSH. Это дает вам настоящую ошибку. В матрицах вы можете хранить имена столбцов с пробелом. Но если вы будете ссылаться на столбцы по символам, R либо сначала преобразует их в data.frame, либо попросит вас это сделать. В этом случае as.data.frame.matrix изменит WaveStart TOSH на _10 _... или вы просто забыли запятую.
person AdamO    schedule 21.02.2020