Я искал помощи в проблеме, в которой я сейчас застрял в проекте (представьте после текста).
По сути, я пытаюсь заполнить переменную критериями уровней на основе количества раз, когда пациент записывал данные за неделю, чтобы изучить качество записи.
Критерии для уровней следующие:
3+ readings/week == "4",
3 readings/week == "3",
2 readings/week == "2",
1 reading/week == "1",
NA == "0"
Сначала я создал новую переменную для недель с помощью функции week () lubridate, которая дала мне номера недель в зависимости от того, где даты были в году. В идеале я хотел бы выделить номера недель в порядке возрастания (1-n), начиная с 1 с первой даты, которую пациент записал, до последней даты.
Подумал об использовании a для l oop, но в настоящее время используется case_when. Проблема, с которой я в настоящее время сталкиваюсь, заключается в том, чтобы установить условие проверки частоты уровней для каждого идентификатора пациента, чтобы затем назначить критерии.
Любая помощь будет полезна, поскольку я застрял на ней для большинства сегодня большое спасибо (представьте ниже).
library(lubridate)
#> Warning: package 'lubridate' was built under R version 3.5.3
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.5.3
#> Warning: package 'ggplot2' was built under R version 3.5.3
#> Warning: package 'tibble' was built under R version 3.5.3
#> Warning: package 'tidyr' was built under R version 3.5.3
#> Warning: package 'readr' was built under R version 3.5.3
#> Warning: package 'purrr' was built under R version 3.5.3
#> Warning: package 'dplyr' was built under R version 3.5.3
#> Warning: package 'stringr' was built under R version 3.5.3
#> Warning: package 'forcats' was built under R version 3.5.3
##Variables##
patientid <- c("-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646",
"-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646", "-2147483646")
date <- c("2018-08-06", "2018-08-07", "2018-08-07", "2018-08-07", "2018-08-15", "2018-08-15", "2018-08-15", "2018-08-20", "2018-08-20",
"2018-08-20", "2018-08-27", "2018-08-27", "2018-08-27", "2018-09-03", "2018-09-03", "2018-09-03")
week <- week(date)
adherence <- ""
test.df <- data.frame(patientid, date, week, adherence) #test df with variables above
##Dataframe and attempt##
table(test.df$week) #See frequency of each
#>
#> 32 33 34 35 36
#> 4 3 3 3 3
test.df <- test.df %>% #Dataframe
mutate(
patientid = as.factor(patientid),
date = as.Date(date),
week = as.factor(week))
adherence <- test.df %>% #Attempt to create if/else/else if loop to populate adherence
mutate(week =
if(count(week) > 3){adherence == "4"})
#> Error in UseMethod("summarise_"): no applicable method for 'summarise_' applied to an object of class "factor"