r 中 2-way table 变量的平均值
Mean of variables in a 2-way table in r
我正在尝试通过观察的平均值获得 2-way table。
我的数据框是这样的
df
ID value Cl Dom Con
<chr> <dbl> <chr> <chr> <chr>
G1-MAT1 1 B Knowing Ar
G1-MAT2 0 B Knowing Ar
G1-MAT3 0 B Knowing Ar
G1-MAT4 1 C Knowing Ar
G1-MAT5 1 B Knowing Ar
G1-MAT6 0 B Reasoning Me
G1-MAT7 1 B Reasoning Ar
G1-MAT8 1 C Reasoning Ar
G1-MAT9 1 B Knowing Me
G1-MAT10 0 B Knowing Ar
我正在尝试使用 tidyverse 获得类似的东西。
Dom Ar Me
<chr> <dbl> <dbl>
Reasoning 1 0
Knowing 0.5 1
其中条目是观察的平均值。可能吗?
对于 {tidyverse},您可以使用 group_by()
和 summarize()
然后 pivot_wider()
将其放入您显示的格式。
library(tidyverse)
d <- tibble(value = sample(0:1, 100, T),
Dom = sample(c("Knowing", "Reasoning"), 100, T),
Con = sample(c("Ar", "Me"), 100, T))
d %>%
group_by(Dom, Con) %>%
summarize(value = mean(value, na.rm = T)) %>%
pivot_wider(names_from = Con)
#> # A tibble: 2 × 3
#> # Groups: Dom [2]
#> Dom Ar Me
#> <chr> <dbl> <dbl>
#> 1 Knowing 0.435 0.391
#> 2 Reasoning 0.571 0.769
由 reprex package (v2.0.1)
于 2022-05-18 创建
在基数 R 中:
xtabs(value~., aggregate(value~Dom + Con, df, mean))
Con
Dom Ar Me
Knowing 0.5 1.0
Reasoning 1.0 0.0
您可以使用 reshape
:
reshape(aggregate(value~Dom + Con, df, mean),
timevar = 'Con', idvar = 'Dom', dir = 'wide')
Dom value.Ar value.Me
1 Knowing 0.5 1
2 Reasoning 1.0 0
我正在尝试通过观察的平均值获得 2-way table。 我的数据框是这样的
df
ID value Cl Dom Con
<chr> <dbl> <chr> <chr> <chr>
G1-MAT1 1 B Knowing Ar
G1-MAT2 0 B Knowing Ar
G1-MAT3 0 B Knowing Ar
G1-MAT4 1 C Knowing Ar
G1-MAT5 1 B Knowing Ar
G1-MAT6 0 B Reasoning Me
G1-MAT7 1 B Reasoning Ar
G1-MAT8 1 C Reasoning Ar
G1-MAT9 1 B Knowing Me
G1-MAT10 0 B Knowing Ar
我正在尝试使用 tidyverse 获得类似的东西。
Dom Ar Me
<chr> <dbl> <dbl>
Reasoning 1 0
Knowing 0.5 1
其中条目是观察的平均值。可能吗?
对于 {tidyverse},您可以使用 group_by()
和 summarize()
然后 pivot_wider()
将其放入您显示的格式。
library(tidyverse)
d <- tibble(value = sample(0:1, 100, T),
Dom = sample(c("Knowing", "Reasoning"), 100, T),
Con = sample(c("Ar", "Me"), 100, T))
d %>%
group_by(Dom, Con) %>%
summarize(value = mean(value, na.rm = T)) %>%
pivot_wider(names_from = Con)
#> # A tibble: 2 × 3
#> # Groups: Dom [2]
#> Dom Ar Me
#> <chr> <dbl> <dbl>
#> 1 Knowing 0.435 0.391
#> 2 Reasoning 0.571 0.769
由 reprex package (v2.0.1)
于 2022-05-18 创建在基数 R 中:
xtabs(value~., aggregate(value~Dom + Con, df, mean))
Con
Dom Ar Me
Knowing 0.5 1.0
Reasoning 1.0 0.0
您可以使用 reshape
:
reshape(aggregate(value~Dom + Con, df, mean),
timevar = 'Con', idvar = 'Dom', dir = 'wide')
Dom value.Ar value.Me
1 Knowing 0.5 1
2 Reasoning 1.0 0