我正在检索文件夹中的文件列表,我想创建一个数据框架。文件夹中的文件名称均为"1.png"、"2.png"等。我想创建一个数据框架,列名为number;和名为"extension"的列;并根据所述"数字"的数值对所述数据帧重新排序;列。
我首先将文件列表提取到一个数据帧中:
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
到目前为止还好…现在我所需要做的就是根据列"Number":
按升序重新排序数据帧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"
出什么事了?
如果我们需要实际值排序,使用order
数据集的索引,使用索引作为行索引,而不是将索引分配为列'Number'
MyList <- MyList[order(as.numeric(MyList$Number), decreasing = FALSE),]