Как получить проценты наблюдений выше определенного значения для отдельных лиц и групп? - PullRequest
0 голосов
/ 29 октября 2019

Я новичок в R и ищу некоторую помощь с моей диссертацией!

Имеющиеся у меня данные: идентификатор участника, группа, к которой они принадлежат (контрольная группа или пациент), и координаты в столбце «взгляд», где значения> 0 справа, а <0 слева. </p>

Цель состоит в том, чтобы вычислить процент координат в правой и левой части пространства для каждого участника и двух групп.

Пример данных:

df <- data.frame(personID=rep(1,6),gaze=c(-0.104,-0.105,0.00550,0.00407,0.00119,0.0411),group=rep('control',6))
df
#  personID     gaze   group
#1        1 -0.10400 control
#2        1 -0.10500 control
#3        1  0.00550 control
#4        1  0.00407 control
#5        1  0.00119 control
#6        1  0.04110 control

1 Ответ

1 голос
/ 29 октября 2019

Вы можете использовать пакет dplyr, чтобы получить ответ

library(dplyr)
# create a new boolean column with TRUE where gaze >=0
df <- df %>% mutate(positive_gaze=(gaze>=0))

# group by personID and calculate mean of the new column
df %>% group_by(personID) %>% summarise(pct_positive = 100*mean(positive))
# A tibble: 1 x 2
#  personID pct_positive
#     <dbl>        <dbl>
#1        1         66.7

# similarly you could group by group
df %>% group_by(group) %>% summarise(pct_positive = 100*mean(positive))
# A tibble: 1 x 2
#  group   pct_positive
#  <fct>          <dbl>
#1 control         66.7

# or group by both group and personID
df %>% group_by(group,personID) %>% summarise(pct_positive = 100*mean(positive))
# A tibble: 1 x 3
# Groups:   group [1]
#  group   personID pct_positive
#  <fct>      <dbl>        <dbl>
#1 control        1         66.7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...