R 将排列()替换为枢轴_加宽()
我有一个数据集,我正在用dplyr包在R中处理和编辑。我的代码是:R 将排列()替换为枢轴_加宽(),r,dplyr,R,Dplyr,我有一个数据集,我正在用dplyr包在R中处理和编辑。我的代码是: hiphop%>% mutate( sex = case_when( sex == 1 ~ "female", sex == 0 ~ "male" ) )%>% group_by(sex)%>% summarise_at(vars(intl,vocal,classical,folk,rock,country,pop,alternative,hip
hiphop%>%
mutate( sex =
case_when(
sex == 1 ~ "female",
sex == 0 ~ "male"
)
)%>%
group_by(sex)%>%
summarise_at(vars(intl,vocal,classical,folk,rock,country,pop,alternative,hiphop,unclassifiable),funs(mean))%>%
pivot_longer(c(intl,vocal,classical,folk,rock,country,pop,alternative,hiphop,unclassifiable),names_to = "genre")%>%
spread(sex,value)%>%
mutate(
genredifference = abs(female-male)
)%>%
arrange(genredifference)%>%
top_n(3)
我在哪里得到这个输出:
Selecting by genredifference
# A tibble: 3 x 4
genre female male genredifference
<chr> <dbl> <dbl> <dbl>
1 country 0.786 0.392 0.394
2 vocal 0.880 1.57 0.688
3 rock 1.93 3.06 1.13
按genre差异选择
#一个tibble:3x4
体裁男女体裁差异
1个国家0.786 0.392 0.394
2人声0.880 1.57 0.688
3岩石1.93 3.06 1.13
我希望获得相同的输出,但将spread()函数替换为pivot_wider()(我相信这就是要使用的函数)。然而,我不知道怎么做
谢谢大家!
注:这是我的数据集,如果您感兴趣:
hiphop <- read_csv("https://www.dropbox.com/s/5d8fwxrj3jtua1z/hiphop.csv?dl=1")
hiphop基于dropbox输入数据,一些步骤已经完成。我们可以通过使用选择帮助程序
使某些步骤更加紧凑,即,如果我们有一系列列要选择,请使用:
,类似地,在pivot\u longer
中,我们还可以使用-
指定不选择的列。使用pivot\u wide
,确保指定参数(names\u from
,values\u from
),因为还有其他参数,并且在不指定参数的情况下,它可以按出现顺序匹配参数
library(dplyr)
library(tidyr)
hiphop %>%
group_by(sex)%>%
summarise_at(vars(intl:unclassifiable), mean) %>%
pivot_longer(cols = -sex) %>%
pivot_wider(names_from = sex, values_from = value) %>%
mutate(genredifference = abs(Female-Male))%>%
arrange(genredifference)%>%
top_n(3)
# A tibble: 3 x 4
# name Female Male genredifference
# <chr> <dbl> <dbl> <dbl>
#1 country 0.786 0.392 0.394
#2 vocal 0.880 1.57 0.688
#3 rock 1.93 3.06 1.13
库(dplyr)
图书馆(tidyr)
嘻哈%>%
按性别划分的组别%>%
总结(变量(国际:不可分类),平均值)%>%
pivot_更长(cols=-性别)%>%
pivot\u更宽(姓名\u from=sex,值\u from=value)%>%
突变(基因差异=abs(雌雄))%>%
排列(基因差异)%>%
顶部(3)
#一个tibble:3x4
#姓名男女性别差异
#
#1个国家0.786 0.392 0.394
#2人声0.880 1.57 0.688
#3岩石1.93 3.06 1.13
您可以更改排列
。若要将pivot\u加宽(names\u from=sex,values\u from=value)
您也可以将spread(…)
更改为pivot\u加宽(genre,sex)
,但我更喜欢@akrun的方法,因为它使用命名参数。