我正在检索我的文件夹中的文件列表,我想创建一个数据框。文件夹中的文件都包含名称"1.png"、"2.png"等。我想创建一个列名为"Number"和列名为"Extension"的数据框,并根据"Number"列的数值对数据框重新排序。
我首先将文件列表提取到一个数据框中:
MyList <- data.frame(Number = list.files(path), Extension = NA)
结果是这样的:
Number Extension
1 1.png NA
2 10.png NA
3 11.png NA
4 12.png NA
5 13.png NA
依此类推......接下来,我根据这些点拆分数字:
MyList$Extension <- lapply(strsplit(MyList$Number, "\\."), "[", 2)
MyList$Number <- lapply(strsplit(MyList$Number, "\\."), "[", 1)
这就给了我:
Number Extension
1 1 png
2 10 png
3 11 png
4 12 png
5 13 png
到目前为止一切都很好...现在我所需要的是根据列"数字"按升序重新排序 Dataframe :
MyList$Number <- order(as.numeric(MyList$Number), decreasing = FALSE)
结果是:
Number Extension
1 1 png
2 22 png
3 33 png
4 34 png
5 35 png
不知什么原因没起作用?我以为会是这样的:
Number Extension
1 1 png
2 2 png
3 3 png
4 4 png
5 5 png
等等......"数字"列属于整数类:
> class(MyList$Number)
[1] "integer"
出了什么问题?
1条答案
按热度按时间x6yk4ghg1#
如果需要对实际值进行排序,请使用
order
数据集中的索引,将该索引用作行索引,而不是将该索引指定为列“Number”