我想对虹膜数据集使用功能ivot_longer()和pivot_wider()。这是延长数据的代码:
iris_ds <- iris %>% pivot_longer(-Species, names_to = "Measure", values_to = "Value")
在文档中说,pivot_wider()是pivot_longer()的逆变换,所以我应用了代码:
iris_or <- iris_ds %>% pivot_wider(names_from = "Measure", values_from = "Value")
我得到下表:
Species Sepal.Length Sepal.Width Petal.Length Petal.Width
setosa <dbl> <dbl> <dbl> <dbl>
versicolor <dbl> <dbl> <dbl> <dbl>
virginica <dbl> <dbl> <dbl> <dbl>
这在类似的collect()spread()问题(建议使用RowId)中得到了回答,我想要的帮助是,新函数ivot_longer和pivot_wider是否有办法管理它以使其可传递。预先感谢您的回答。
答案 0 :(得分:2)
简短的回答是“否”,pivot_*
中没有任何内容可以解决这个问题。将来在pivot_longer
中添加一些内容以从内部生成唯一的rowID可能是一个好主意。
正如您所说,解决方法是使用tibble
的{{1}}自己添加这样的行ID:
rowid_to_column
这将带您回到虹膜。