r - 根据列/标签重新排序 R 数据框的行
问题描述
我当前在 R 中的数据框具有以下维度
nrows=605
ncol: 1514
第一列表示类/标签,我的数据集只有两个类:setosa 和 iris。
test[1:5,]
class id1 id2...
1: setosa 2 4.....
2: setosa 2 5 .....
3: setosa 5 4 .....
4: iris 5 9......
5: iris 7 9 ....
然而,数据框现在是有序的:即。我的数据框的第 2 行第 233 行对应于 setosa 类,而 iris 类是从 234 到结束。我希望重新排列数据集,以便将样本混合在一起。
预期输出应采用以下形式:如果我执行 df[1:10,] 即。10行数据框,我应该可以看到鸢尾花和setosa的样本。关于如何做到这一点的任何想法或建议?
解决方案
library( tidyverse )
iris[1:10,]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
# 4 4.6 3.1 1.5 0.2 setosa
# 5 5.0 3.6 1.4 0.2 setosa
# 6 5.4 3.9 1.7 0.4 setosa
# 7 4.6 3.4 1.4 0.3 setosa
# 8 5.0 3.4 1.5 0.2 setosa
# 9 4.4 2.9 1.4 0.2 setosa
# 10 4.9 3.1 1.5 0.1 setosa
df <- iris %>%
group_by( Species ) %>%
mutate( id = row_number() ) %>%
arrange( id ) %>%
select ( -id )
df[1:10,]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# <dbl> <dbl> <dbl> <dbl> <fct>
# 1 5.1 3.5 1.4 0.2 setosa
# 2 7 3.2 4.7 1.4 versicolor
# 3 6.3 3.3 6 2.5 virginica
# 4 4.9 3 1.4 0.2 setosa
# 5 6.4 3.2 4.5 1.5 versicolor
# 6 5.8 2.7 5.1 1.9 virginica
# 7 4.7 3.2 1.3 0.2 setosa
# 8 6.9 3.1 4.9 1.5 versicolor
# 9 7.1 3 5.9 2.1 virginica
# 10 4.6 3.1 1.5 0.2 setosa
推荐阅读
- python - Keras Sequence2Sequence 示例内存不足
- spring - 我应该使用自定义 DTO 响应类作为抽象吗?或者有没有办法包装/装饰 ResponseEntity?
- cordova - 由于无法读取未定义的属性“onTokenRefresh”,我无法在离子应用程序中获取设备令牌
- css - 在我的 React 应用程序的页脚添加“display: flex”会在其下方添加空格,为什么会这样?
- android - ¿ 如果我对每个信标都有相同的 UUID,是否可以使用 Android 信标库通过其 MAC 地址触发信标事件?
- go - 函数退出后,goroutine如何从调用函数访问局部变量?
- java - ViewModel Observer 显示空 RecyclerView
- amazon-web-services - boto3 对象是否有通用的“描述”方法?
- javascript - 在nodejs中处理大文件和节点以及内存限制
- amazon-web-services - 转储和评估 S3 存储桶策略的最佳方法