Фон
Я пытаюсь подгруппировать участников на основе различных уровней крови и других факторов, таких как возраст, и затем оценивать эти результаты.
Проблема # 1 состоит в том, что% в% -операторе только подмножество значений, которые являются целыми числами (например, возраст 35.0 или 38.0), но не рациональные числа с 1/10 фракциями, отличными от .0, такие как 48,6 или 56,7.
Проблема # 2 также относится к% в% и долях. В этом случае% в% с диапазоном, например, 1.29: 1.55 выбирает только значения, которые в точности равны 1.29 или 1.55, но не имеют промежуточных значений.
Должен ли я каким-то образом указывать R, что я делю значения на их 1/10 дроби? Диапазон отлично работает, когда значения являются целыми числами, например,% в% 200: 205 будет подмножество значений 200, 201, 202, 203, 204, 205. И все же по какой-то причине, если я хотел выбрать диапазон% в% 20.0 : 20,5, это дает мне 20,0 и 20,5, а не 20,0, 20,1, 20,2, 20,3, 20,4 и 20,5.
File.Score <- File %>%
filter(sex == "FEMALE") %>%
mutate(Score.Age = case_when(age_sc %in% 35:39 ~ 2,
age_sc %in% 40:44 ~ 4,
age_sc %in% 45:49 ~ 5,
TRUE ~ 0))
File.Score <- File %>%
filter(sex == "FEMALE") %>%
mutate(Score.HDL = case_when(HDL > 1.55 ~ -2,
HDL %in% 1.29:1.55 ~ -1,
HDL %in% 1.16:1.29 ~ 0,
HDL %in% 0.9:1.16 ~ 1,
HDL < 0.9 ~ 2))
ISSUE 1
#Range of ages that should be scored
head(File$Age, 50)
[1] 42.3 26.3 29.2 59.8 36.1 43.0 56.7 48.6 47.0 42.2 38.0
#Ages that are scored
head(File.Score$Score.Age, 11)
[1] NA NA NA NA NA 4 NA NA 5 NA 2
#In other words, only the integers are chosen with a 1/10 fraction of 0.
ISSUE 2
#Range of HDL-values that should be scored
head(File$HDL, 11)
[1] 1.67 1.73 2.05 0.95 1.38 1.60 1.51 1.29 1.34 1.27 1.18
#HDL-values scored
head(File.Score$Score.HDL, 11)
[1] -2 -2 -2 NA NA NA NA -1 NA NA NA
#Only the values that are specified by > -operator and those at the edges
of the range are subset. Values between 1.29 and 1.55 are not subset.
Та же проблема возникла, когда я попытался использовать ifelse вместо case_when .
Возможно, мне следует добавить некоторые спецификации в код, но я не могу понять, что это может быть.
- Я использую Rstudio версии 1.1.447
- Я использую dplyr версии 0.8.0.1
- Все значения числовые как .doubles, а не как.integers.