Могу ли я использовать R только для анализа данных после определенной даты? - PullRequest
0 голосов
/ 11 февраля 2020

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

Я предполагаю, что могу использовать функцию разделения для создания меньших фреймов данных, каждый из которых соответствует каждому из объектов, а затем использовать некоторую функцию для анализа данных в al oop для запуска на всех меньшие кадры данных я создал из раскола.

Некоторые из этих предметов имеют более 1000 точек данных. Мои два основных вопроса:

1) Есть ли функция, которую я могу использовать для анализа данных по каждому предмету после определенной c уникальной даты для каждого предмета?

2) Является ли Стратегия, которую я предложил выше, является жизнеспособной?

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

Редактировать: Итак, был запрос о типе данных, о которых я говорил. Мне было интересно, если бы у меня были данные, подобные этому, могу ли я по-прежнему использовать вышеуказанную стратегию. Где P1 и P2 имеют свои собственные наборы данных, которые я хочу проанализировать после TxDate.

>data
1           Date     BMI    Glucose    Cholesterol    TxDate    
2 P1                                                  3/3/15
3           12/1/14  24     145        99  
4           3/18/15  26     123        101          
5           4/21/15  28     111        85      
6           6/2/15   25     133        90         
7          
8
9 P2                                                  4/6/16
10          1/3/16   33     145        200
11          3/30/16  31     162        178
12          5/13/16  34     190        134
13          6/12/16  34     183        168
14          7/9/16   35     200        189
15          9/10/16  31     175        190
16          11/23/17 27     121        120
17
18

1 Ответ

0 голосов
/ 12 февраля 2020

Вот несколько советов для начала:

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

Остались данные, которые, как вам кажется, нужны для анализа.

...