Как измерить пропорции последовательно? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь измерить частоту ответов для определенных стратегий найма. Набор прошел более 30 волн. Для каждой волны потенциальным участникам было разослано пригласительное письмо, на которое они могли ответить «да» или «нет». Иногда эти субъекты не отвечают на Приглашение, где они получают письмо-напоминание, на которое они могут ответить аналогичным образом. Они получат до 3 напоминаний.

В моем наборе данных есть переменная для каждого напоминания со значениями 0 и 1.

Таким образом, если определенный участник получил только Приглашение (и ответил «да или нет»), ему / ей будет присвоено значение «0» для первого напоминания, «0» для второго напоминания и «0» для третьего напоминания ,

Я пытаюсь измерить частоту ответов (Люди, которые сказали «да») после получения приглашения, или первого напоминания, или второго, и т. Д.

Это означает, что Люди, которые сказали «да» после Письма-приглашения, / все те, кто получил письмо-приглашение (в основном это все) И люди, которые сказали «да» после первого напоминания / все те, кто получил первое напоминание (независимо от того, получили ли они второе напоминание и минус те, кто сказал «да» или «нет» на пригласительное письмо).

Мой набор данных выглядит так:

ID wave participate freminder sreminder treminder 
   267  1       yes        0          0          0
   312  1       no         0          0          0
   516  29      yes        1          1          1

Я создал новую переменную «Группа»

datnakwtele$group[which( datnakwtele$freminder == "0" )] <-1
datnakwtele$group[which(datnakwtele$freminder == "1" & datnakwtele$sreminder == "0" )] <- 2
datnakwtele$group[which( datnakwtele$freminder == "1" & datnakwtele$sreminder >= "1" & datnakwtele$treminder == "0"  )] <- 3
datnakwtele$group[which( datnakwtele$freminder == "1" & datnakwtele$sreminder >= "1" & datnakwtele$treminder >= "1" )] <- 4

Тогда я сделал это

dplyr::group_by(wave,group,participate) %>%
dplyr::summarise (n = n()) %>%
dplyr::mutate(Percentage = (((n/ sum(n)*100))))
 ```

But my Output only (for example) Shows People that said yes after the first Invitation / People that only responded to the first Invitation (and not everyone that received it)


```wave  group participate     n Percentage
1 1     1     yes             64      50.4 
2 1     1     no              63      49.6 
3 1     2     yes             32      36.4 
4 1     2     no              55      62.5 
6 1     3     yes             11      18.6 

Допустим, 100 человек получили приглашение, 5 испытуемых ответили да, а еще 5 ответили нет. Частота ответов должна быть 5/100, а не 5/10. 90 субъектов не ответили и получили первое напоминание, снова 5 сказали «да», а 5 сказали «нет». Коэффициент ответов для первого напоминания должен быть 5/90 (100 человек, ответивших на Приглашение)

1 Ответ

0 голосов
/ 12 июня 2019

РЕДАКТИРОВАТЬ №.3, я думаю, что у меня есть проблема сейчас


Возможно, это решение?

library(tidyverse)

data <- tibble(ID = sample(letters,100, T), 
               wave = sample(1:30, 100, T),
               answer = sample(c('yes', 'no'),100,T),
               freminder = rbinom(100,1,.5),
               sreminder = rbinom(100,1,.5),
               treminder = rbinom(100,1,.5))
# group as sum
data$group <- data  %>% select(freminder, sreminder, treminder) %>% rowSums()

# split into seperate wave-sets
spData <- split(data, data$wave)

# define what to to per wave
returnFreqs <- function(wave){
  tab <- table(wave$group, wave$answer)
  num <- rev(cumsum(rev(rowSums(tab))))
  list(absFreq = tab,
       relFreq = sweep(tab,
                       MARGIN = 1,
                       STATS = num,
                       FUN = '/'))
}

allTabs <- lapply(spData, returnFreqs)

Создание следующего вывода в allTabs:

#> $`2`
#> $`2`$absFreq
#>    
#>     no yes
#>   1  1   0
#>   2  1   0
#>   3  1   1
#> 
#> $`2`$relFreq
#>    
#>            no       yes
#>   1 0.2500000 0.0000000
#>   2 0.3333333 0.0000000
#>   3 0.5000000 0.5000000
#> 
#> 
#> $`3`
#> $`3`$absFreq
#>    
#>     no yes
#>   1  1   0
#>   2  2   2
#> 
#> $`3`$relFreq
#>    
#>      no yes
#>   1 0.2 0.0
#>   2 0.5 0.5
#> 
#> 
#> $`4`
#> $`4`$absFreq
#>    
#>     no
#>   1  1
#> 
#> $`4`$relFreq
#>    
#>     no
#>   1  1
#> 
#> 
#> $`5`
#> $`5`$absFreq
#>    
#>     no yes
#>   1  1   0
#>   2  2   1
#>   3  1   0
#> 
#> $`5`$relFreq
#>    
#>       no  yes
#>   1 0.20 0.00
#>   2 0.50 0.25
#>   3 1.00 0.00
#> 
#> 
#> $`6`
#> $`6`$absFreq
#>    
#>     no
#>   1  1
#> 
#> $`6`$relFreq
#>    
#>     no
#>   1  1
#> 
#> 
#> $`7`
#> $`7`$absFreq
#>    
#>     yes
#>   0   1
#>   2   1
#> 
#> $`7`$relFreq
#>    
#>     yes
#>   0 0.5
#>   2 1.0
#> 
#> 
#> $`8`
#> $`8`$absFreq
#>    
#>     no yes
#>   1  0   1
#>   2  1   1
#> 
#> $`8`$relFreq
#>    
#>            no       yes
#>   1 0.0000000 0.3333333
#>   2 0.5000000 0.5000000
#> 
#> 
#> $`9`
#> $`9`$absFreq
#>    
#>     no yes
#>   1  0   1
#>   2  2   0
#> 
#> $`9`$relFreq
#>    
#>            no       yes
#>   1 0.0000000 0.3333333
#>   2 1.0000000 0.0000000
#> 
#> 
#> $`10`
#> $`10`$absFreq
#>    
#>     no yes
#>   1  0   1
#>   2  2   0
#> 
#> $`10`$relFreq
#>    
#>            no       yes
#>   1 0.0000000 0.3333333
#>   2 1.0000000 0.0000000
#> 
#> 
#> $`11`
#> $`11`$absFreq
#>    
#>     no yes
#>   0  0   1
#>   1  1   1
#>   3  1   0
#> 
#> $`11`$relFreq
#>    
#>            no       yes
#>   0 0.0000000 0.2500000
#>   1 0.3333333 0.3333333
#>   3 1.0000000 0.0000000
#> 
#> 
#> $`12`
#> $`12`$absFreq
#>    
#>     no yes
#>   2  1   1
#>   3  0   1
#> 
#> $`12`$relFreq
#>    
#>            no       yes
#>   2 0.3333333 0.3333333
#>   3 0.0000000 1.0000000
#> 
#> 
#> $`13`
#> $`13`$absFreq
#>    
#>     no yes
#>   2  0   1
#>   3  1   0
#> 
#> $`13`$relFreq
#>    
#>      no yes
#>   2 0.0 0.5
#>   3 1.0 0.0
#> 
#> 
#> $`14`
#> $`14`$absFreq
#>    
#>     no yes
#>   1  1   2
#>   2  1   2
#> 
#> $`14`$relFreq
#>    
#>            no       yes
#>   1 0.1666667 0.3333333
#>   2 0.3333333 0.6666667
#> 
#> 
#> $`15`
#> $`15`$absFreq
#>    
#>     yes
#>   0   2
#>   1   1
#> 
#> $`15`$relFreq
#>    
#>           yes
#>   0 0.6666667
#>   1 1.0000000
#> 
#> 
#> $`16`
#> $`16`$absFreq
#>    
#>     no yes
#>   0  0   1
#>   1  1   1
#>   2  1   1
#>   3  1   0
#> 
#> $`16`$relFreq
#>    
#>            no       yes
#>   0 0.0000000 0.1666667
#>   1 0.2000000 0.2000000
#>   2 0.3333333 0.3333333
#>   3 1.0000000 0.0000000
#> 
#> 
#> $`17`
#> $`17`$absFreq
#>    
#>     yes
#>   0   1
#> 
#> $`17`$relFreq
#>    
#>     yes
#>   0   1
#> 
#> 
#> $`18`
#> $`18`$absFreq
#>    
#>     no yes
#>   2  1   1
#> 
#> $`18`$relFreq
#>    
#>      no yes
#>   2 0.5 0.5
#> 
#> 
#> $`19`
#> $`19`$absFreq
#>    
#>     no yes
#>   0  0   1
#>   2  1   1
#> 
#> $`19`$relFreq
#>    
#>            no       yes
#>   0 0.0000000 0.3333333
#>   2 0.5000000 0.5000000
#> 
#> 
#> $`20`
#> $`20`$absFreq
#>    
#>     yes
#>   0   1
#>   3   1
#> 
#> $`20`$relFreq
#>    
#>     yes
#>   0 0.5
#>   3 1.0
#> 
#> 
#> $`21`
#> $`21`$absFreq
#>    
#>     no
#>   2  2
#> 
#> $`21`$relFreq
#>    
#>     no
#>   2  1
#> 
#> 
#> $`22`
#> $`22`$absFreq
#>    
#>     no yes
#>   0  0   1
#>   1  2   1
#>   2  1   1
#>   3  0   2
#> 
#> $`22`$relFreq
#>    
#>            no       yes
#>   0 0.0000000 0.1250000
#>   1 0.2857143 0.1428571
#>   2 0.2500000 0.2500000
#>   3 0.0000000 1.0000000
#> 
#> 
#> $`23`
#> $`23`$absFreq
#>    
#>     yes
#>   2   1
#> 
#> $`23`$relFreq
#>    
#>     yes
#>   2   1
#> 
#> 
#> $`24`
#> $`24`$absFreq
#>    
#>     no yes
#>   2  1   3
#>   3  1   1
#> 
#> $`24`$relFreq
#>    
#>            no       yes
#>   2 0.1666667 0.5000000
#>   3 0.5000000 0.5000000
#> 
#> 
#> $`25`
#> $`25`$absFreq
#>    
#>     no yes
#>   1  2   0
#>   2  2   1
#> 
#> $`25`$relFreq
#>    
#>            no       yes
#>   1 0.4000000 0.0000000
#>   2 0.6666667 0.3333333
#> 
#> 
#> $`26`
#> $`26`$absFreq
#>    
#>     no yes
#>   2  2   1
#> 
#> $`26`$relFreq
#>    
#>            no       yes
#>   2 0.6666667 0.3333333
#> 
#> 
#> $`27`
#> $`27`$absFreq
#>    
#>     no yes
#>   1  0   3
#>   2  2   0
#> 
#> $`27`$relFreq
#>    
#>      no yes
#>   1 0.0 0.6
#>   2 1.0 0.0
#> 
#> 
#> $`28`
#> $`28`$absFreq
#>    
#>     no yes
#>   1  1   0
#>   2  0   1
#> 
#> $`28`$relFreq
#>    
#>      no yes
#>   1 0.5 0.0
#>   2 0.0 1.0
#> 
#> 
#> $`29`
#> $`29`$absFreq
#>    
#>     no yes
#>   0  1   0
#>   1  1   2
#> 
#> $`29`$relFreq
#>    
#>            no       yes
#>   0 0.2500000 0.0000000
#>   1 0.3333333 0.6666667
#> 
#> 
#> $`30`
#> $`30`$absFreq
#>    
#>     no yes
#>   0  0   1
#>   2  2   1
#>   3  1   0
#> 
#> $`30`$relFreq
#>    
#>       no  yes
#>   0 0.00 0.20
#>   2 0.50 0.25
#>   3 1.00 0.00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...