r - sort() 工作正常,但使用它来显示完整的排序数据框会给出不同的输出,而不是排序后的输出
问题描述
我想按列的内容对数据框进行排序。关于使用 sort() 函数但没有得到排序的数据框
我有一个数据框,其中包含名称、年龄、性别等列。我想根据年龄对数据框进行排序
我尝试了 sort(data_info$Age) ,它给出了正确的输出:
> my_sort <- sort(data_info$Age)
[1] 19 19 19 20 20 20 20 20 20 20 20 20 20 21 23
Levels: 19 20 21 23
现在想根据年龄对完整的数据框进行排序,所以使用:
> group_info_df[my_sort,]
我期望一个排序的数据框,但输出是
Gender Age Favorite_Food Day_of_birth
Marcos Male 23 Pizza 24
Marcos.1 Male 23 Pizza 24
Marcos.2 Male 23 Pizza 24
Sahil Male 20 Dosa 17
Sahil.1 Male 20 Dosa 17
Sahil.2 Male 20 Dosa 17
Sahil.3 Male 20 Dosa 17
Sahil.4 Male 20 Dosa 17
它多次显示同一行,而不是显示所有其他行。什么是错误或如何解决这个问题
解决方案
我们需要使用order
而不是sort
assort
返回排序后的值,但如果我们使用index.return = TRUE
. 然后,它将返回一个list
名称为“x”和“ix”的排序值和相应的索引。通过查看数据,该列是factor
。我们可以将其转换为numeric
然后order
对数据集的行进行排序
new_df <- group_info_df[order(as.numeric(as.character(data_info$Age))),,
drop = FALSE]
row.names(new_df) <- NULL
推荐阅读
- android - 我如何编码 SplashScreenActivity.kt 因为我的不起作用
- python - 使用 Python 抓取网站时设置代理
- spring-boot - 如何使用 Spring Boot 或 Spring Kafka 集成将消息从多个主题发送到多个主题
- javascript - 如何验证输入值是否确实存在?
- c++ - 是否保证一个线程最终可以看到另一个线程对某个共享变量的写入?
- javascript - 重定向循环passportJS
- algorithm - 通过一次获取整个数据而不是一个文件来压缩文件夹
- ruby-on-rails - 加载数据库定义时获取未定义的方法 oid
- amazon-web-services - AWS 向目标组注册负载均衡器和 ECS
- c# - 将 ComboBox 文本绑定到另一个 ComboBox 内的 ValidationRule?