Это мой набор данных. Есть две категориальные переменные , Deciles
(с 10 уровнями, от DC1
до DC10
) и Population
(с 3 уровнями: SAP
, TD6
и SH
) .
Гипотетически, каждый дециль (например, DC7
) должен иметь три уровня Population
(SAP
, TD6
и SH
), как и в случае.
Однако в некоторых децилях отсутствует один или два уровня Population
(см. DC1
и DC2
). Важно знать, что SAP
присутствует во всех децилях, поэтому TD6
и SH
- это те, которые могут отсутствовать.
Теперь я хочу сравнить SAPvsSH
, SAPvsTD6
и SHvsTD6
, и я написал эту функцию, которая может быть дополнительно отредактирована и исправлена:
diff <- function(x) {
SAP <- sum(x$mean[x$Population == "SAP"])
SH <- sum(x$mean[x$Population == "SH"])
TD6 <- sum(x$mean[x$Population == "TD6"])
SAPvsSH <- (SH*100/SAP)-100
SAPvsTD6 <- (TD6*100/SAP)-100
SHvsTD6 <- (TD6*100/SH)-100
show(SAPvsSH)
show(SAPvsTD6)
show(SHvsTD6)
}
Что мне нужно?
- При сравнении
SAPvsSH
я хочу суммировать все mean
значения SH и mean
значения SAP
, которые присутствуют только в децилях, где SH
имеет данные. Так что в этом случае это должно быть DC7
+ DC8
+ DC9
+ DC10
.
- При сравнении
SAPvsTD6
, тот же метод, что и раньше с SH
.
- При сравнении
SHvsTD6
должны быть включены только децили, в которых данные отображают обе популяции.
Последние три точки находятся в начале функции.
Позже, в функции, мы вычисляем процентную ошибку второго отношения к первой популяции. SAPvsSH
рассчитывает процентную ошибку SH в отношении SAP.
Итак, как я могу ввести фильтр выбора децилей в соответствии с наличием в SH
и TD6
?