如何解决在 R
我的示例数据集有多个列,我想将这些列转换为宽格式。我曾尝试使用 dcast 函数,但出现错误。以下是我的示例数据集:
df2 = data.frame(emp_id = c(rep(1,2),rep(2,4),rep(3,3)),Name = c(rep("John",rep("Kellie",rep("Steve",Year = c("2018","2019","2018","2019"),Type = c(rep("Salaried",rep("Hourly",rep("Salaried","Hourly",2)),Dept = c("Sales","IT","Sales",rep("IT",3),rep("Sales",Salary = c(100,1000,95,1500,90,1200,1200))
我希望我的输出看起来像:
解决方法
一个选项是 pivot_wider()
包中的函数 tidyr
:
df.wide <- tidyr::pivot_wider(df2,names_from = c("Type","Dept","Year"),values_from = "Salary",values_fn = {mean})
这应该会得到你想要的结果。
,你如何看待这个输出?这不是预期的输出,但不知何故我发现更容易解释数据??
df2 %>%
group_by(Name,Year,Type,Dept) %>%
summarise(mean = mean(Salary))
输出:
Name Year Type Dept mean
<chr> <chr> <chr> <chr> <dbl>
1 John 2018 Salaried Sales 100
2 John 2019 Salaried IT 1000
3 Kellie 2018 Hourly Sales 95
4 Kellie 2019 Salaried IT 1500
5 Steve 2018 Hourly IT 90
6 Steve 2019 Salaried Sales 1200
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。