如何使用spread()使一列的值成为主列名
我需要运行卡方检验,所以我需要一列的级别(性别)作为不同变量输出的列名。以下是一些数据:如何使用spread()使一列的值成为主列名,r,dplyr,spread,R,Dplyr,Spread,我需要运行卡方检验,所以我需要一列的级别(性别)作为不同变量输出的列名。以下是一些数据: test <- data.frame(gender = as.character(sample(c('male','female'),10, replace = T)), test1 = sample(c(1:10)), test2 = sample(1:5,10 , replace = T)) > test gender test1 test2
test <- data.frame(gender = as.character(sample(c('male','female'),10, replace = T)),
test1 = sample(c(1:10)),
test2 = sample(1:5,10 , replace = T))
> test
gender test1 test2
1 female 2 2
2 male 9 1
3 male 4 4
4 female 8 1
5 female 5 4
6 female 3 3
7 female 7 3
8 female 1 1
9 male 10 2
10 male 6 2
我已经学习了dplyr使用gather()和spread()提供的所有示例,但没有任何效果。如果你有什么建议,请告诉我。以下是我想要的结果:
> goal
male female
1 10 3
2 1 4
3 5 10
4 3 9
5 6 7
我们可以创建一个按性别分组的序列列,以生成唯一标识符,然后使用` spread'
library(dplyr)
library(tidyr)
test %>%
select(-test2) %>%
group_by(gender) %>%
mutate(rn = row_number()) %>%
spread(gender, test1)
你的例子。将test1显示为具有雌性1而非雄性1
library(dplyr)
library(tidyr)
test %>%
select(-test2) %>%
group_by(gender) %>%
mutate(rn = row_number()) %>%
spread(gender, test1)