es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregue el número de filas específicas a una llamada de summarise().

He intentado los siguientes datos y código reproducibles para obtener mi Current_output:

"study n_effect
3 2
5 2
8 2"

Sin embargo, me pregunto cómo puedo modificar mi código para obtener mi Desired_output?:
"study n_effect composite subscale
3 2 1 1 # Agregar el número de filas para el reporte
5 2 1 1 # Que sean composite y subscale
8 2 1 1"

library(tidyverse)

m="
study subscale  reporting  obs include yi   vi         study_type
1        A      subscale   1   yes     1.94 0.33503768 standard
1        A      subscale   2   yes     1.06 0.01076604 standard
2        A      subscale   3   yes     2.41 0.23767389 standard
2        A      subscale   4   yes     2.34 0.37539841 standard
3        A&C    composite  5   yes     3.09 0.31349510 standard
3        A&C     subscale  6   yes     3.99 0.01349510 standard
4        A&B    composite  7   yes     2.90 0.91349510 standard
4        A&B    composite  8   yes     3.01 0.99349510 standard
5        G&H     subscale  9   yes     1.01 0.99910197 alternative
5        G&H    composite  10  yes     2.10 0.97910095 alternative
6        E&G    composite  11  yes     0.11 0.27912095 alternative
6        E&G    composite  12  yes     3.12 0.87910095 alternative
7        E      subscale   13  yes     0.08 0.21670360 alternative
7        G      subscale   14  yes     1.00 0.91597190 alternative
8        F      subscale   15  yes     1.08 0.81670360 alternative
8        E      composite  16  yes     0.99 0.91297170 alternative"
data <- read.table(text=m,h=T)

data %>%
  group<em>by(study) %>%
  filter(all(c("composite","subscale") %in% reporting)) %>%
  summarise(study = study, n</em>effect = n()) %>% distinct()

Current<em>output =
"study n</em>effect
     3        2
     5        2
     8        2"

Desired<em>output =
"study n</em>effect  composite  subscale
     3        2      1      1
     5        2      1      1
     8        2      1      1"
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la Desired_output, necesitamos modificar la función summarise en el código para contar también el número de filas que tienen tanto “composite” como “subscale” en la columna reporting. Podemos usar sum y ifelse dentro de la función summarise para hacer eso. Aquí está el código modificado:

    “`{r}
    data %>%
    group_by(study) %>%
    filter(all(c(“composite”,”subscale”) %in% reporting)) %>%
    summarise(study = study,
    n_effect = n(),
    composite = sum(ifelse(reporting == “composite”, 1, 0)),
    subscale = sum(ifelse(reporting == “subscale”, 1, 0))) %>%
    distinct()


    Este código nos dará la `Desired_output` de la siguiente manera:

    A tibble: 3 x 4

    study n_effect composite subscale

    1 3 2 1 1
    2 5 2 1 1
    3 8 2 1 1
    “`

    La construcción sum(ifelse()) cuenta el número de filas donde la condición dentro de la declaración ifelse() es verdadera (es decir, donde reporting es “composite” o “subscale”, respectivamente). La función distinct() elimina duplicados (que son poco probables en este caso, pero podrían ocurrir si un estudio tiene tanto “composite” como “subscale” reportados múltiples veces).

Comments are closed.