Вот несколько советов для начала:
1) Tidy ваши данные. Чтобы сделать это, вы можете найти способы изменить свои входные данные, чтобы они выглядели примерно так:
ID Date BMI Glucose Cholesterol TxDate
3 P1 12/1/14 24 145 99 3/3/15
4 P1 3/18/15 26 123 101 3/3/15
5 P1 4/21/15 28 111 85 3/3/15
6 P1 6/2/15 25 133 90 3/3/15
10 P2 1/3/16 33 145 200 4/6/16
11 P2 3/30/16 31 162 178 4/6/16
12 P2 5/13/16 34 190 134 4/6/16
13 P2 6/12/16 34 183 168 4/6/16
14 P2 7/9/16 35 200 189 4/6/16
15 P2 9/10/16 31 175 190 4/6/16
16 P2 11/23/17 27 121 120 4/6/16
Обратите внимание, что столбцы ID и TxDate заполнены соответствующим значением, и несколько строк были удалены. И строка для ID, даты и т. Д. c. на самом деле «заголовки», а не строка данных. Не удивляйтесь, если этап уборки занимает больше времени, чем анализ.
Теперь, для целей этого примера, давайте использовать это как ваши данные:
df <- data.frame(
ID = c(rep("P1",4), rep("P2", 7)),
Date = as.Date(mdy(c("12/1/14", "3/18/15", "4/21/15" , "6/2/15", "1/3/16", "3/30/16", "5/13/16", "6/12/16", "7/9/16", "9/10/16", "11/23/17"))),
BMI = c(24,26,28,25,33,31,34,34,35,31,27),
Glucose = c(145,123,111,133,145,12,190,183,200,175,121),
Cholesterol = c(99,101,85,90,200,178,134,168,189,190,120),
TxDate = as.Date(mdy(c("3/3/15", "3/3/15","3/3/15","3/3/15","4/6/16", "4/6/16","4/6/16","4/6/16","4/6/16","4/6/16","4/6/16"))),
stringsAsFactors = F)
2) Отметьте для посмотрите, представлены ли ваши столбцы Date и TxDate как объект date
. Если ваш data.frame называется 'df', то вам скажут что-то вроде is.date(df$Date)
и is.date(df$TxDate)
. Или str(df)
.
Если нет, прочитайте о способах преобразования их в date
объекты, возможно, с помощью функции as.Date()
в сочетании с mdy()
из пакета lubridate
.
3) Если у вас есть даты, представленные в виде date
объектов, вы можете subset
фрейм данных с простым логическим выражением, как это
# subset dataframe
df1 <- df[df$Date > df$TxDate, ]
Теперь df1
должно выглядеть вот так:
ID Date BMI Glucose Cholesterol TxDate
2 P1 2015-03-18 26 123 101 2015-03-03
3 P1 2015-04-21 28 111 85 2015-03-03
4 P1 2015-06-02 25 133 90 2015-03-03
7 P2 2016-05-13 34 190 134 2016-04-06
8 P2 2016-06-12 34 183 168 2016-04-06
9 P2 2016-07-09 35 200 189 2016-04-06
10 P2 2016-09-10 31 175 190 2016-04-06
11 P2 2017-11-23 27 121 120 2016-04-06
Остались данные, которые, как вам кажется, нужны для анализа.