r - 枢轴更宽会产生嵌套对象
问题描述
这是关于最新tidyr
版本的。我正在尝试pivot_wider
(pivot_longer
更新library(tidyr)
1.0.0)
当我在下面运行时,我试图获得正常的虹膜数据集,但是我得到了嵌套的 3X5 尺寸小标题,不确定发生了什么(我阅读了https://tidyr.tidyverse.org/articles/pivot.html)但仍然不确定如何避免这种情况
library(tidyr)
iris %>% pivot_longer(-Species,values_to = "count") %>%
pivot_wider(names_from = name, values_from = count)
预期输出:普通鸢尾花数据集(150 X 5 维)
编辑:我在下面读到,如果我环绕 unnest() 我会得到预期的输出。当我们没有将它嵌套在任何地方时,我无法理解为什么要取消它。任何基本的帮助将不胜感激。想了解出什么问题的概念。
解决方案
正如我从 Akrun 和其他乐于助人的朋友和帖子中了解到的(不是错误或任何东西)
spread(., name, count) 会引发错误,因为每个物种 x 名称都有多行。pivot_wider 通过提供列表列做得更好。如果我们为每一行添加唯一 ID,那么它就可以正常工作。
library(tidyverse)
iris %>%
rowid_to_column() %>%
pivot_longer(-c(rowid, Species), values_to = "count") %>%
pivot_wider(names_from = name, values_from = count) %>%
select(-rowid)
推荐阅读
- algorithm - 使用 Dijkstra 时如何加权其他因素
- angular - 角度反应形式使用什么方法来注册表单控件名称
- python - matplotlib 中子图的多个颜色条(具有不同的范围/刻度)
- docker - 我的 docker-compose.yml 无法构建 mysql5.7 容器
- css - 我可以更改斜体文本的背景颜色吗?
- python - 注册鼠标事件的不可见窗口
- nginx - 如何通过 Nginx-sticky-module 在两个上游中使用一个 Nginx Cookie(路由)
- java - 如何在 JSP 中指向另一个页面?
- php - 带有可选下划线和数字的 PHP 正则表达式
- azure - Azure 组声明返回对象 ID - 需要组名称