我想按列的内容对数据框进行排序。 使用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
它多次显示同一行,而不显示所有其他行。 有什么错误或如何解决这个问题
答案 0 :(得分:0)
我们需要使用order
而不是sort
,因为sort
返回排序后的值,但是如果我们使用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