【发布时间】:2015-08-13 02:15:27
【问题描述】:
我有一组文件名,例如:
filelist <- c("filea-10.txt", "fileb-2.txt", "filec-1.txt", "filed-5.txt", "filef-4.txt")
我想根据“-”后面的数字过滤它们。
例如,在python中,我可以使用排序函数的key参数:
filelist <- ["filea-10.txt", "fileb-2.txt", "filec-1.txt", "filed-5.txt", "filef-4.txt"]
sorted(filelist, key=lambda(x): int(x.split("-")[1].split(".")[0]))
> ["filec-1.txt", "fileb-2.txt", "filef-4.txt", "filed-5.txt", "filea-10.txt"]
在 R 中,我正在使用 strsplit 和 lapply 到目前为止没有运气。
在 R 中的实现方式是什么?
编辑: 文件名可以是很多东西,并且可能包含更多数字。唯一固定的模式是我要排序的数字在“-”之后。另一个(真实的)例子:
c <- ("boards10017-51.mp4", "boards10065-66.mp4", "boards10071-81.mp4",
"boards10185-91.mp4", "boards10212-63.mp4", "boards1025-51.mp4",
"boards1026-71.mp4", "boards10309-89.mp4", "boards10310-68.mp4",
"boards10384-50.mp4", "boards10398-77.mp4", "boards10419-119.mp4",
"boards10421-85.mp4", "boards10444-87.mp4", "boards10451-60.mp4",
"boards10461-81.mp4", "boards10463-52.mp4", "boards10538-83.mp4",
"boards10575-62.mp4", "boards10577-249.mp4")"
【问题讨论】:
-
总是只有一个数字吗?你不能只提取数字和顺序吗?
-
不,抱歉。还有更多的数字。一个真实的例子是
boards451-74。我会编辑。 -
好的。我添加了一个更新。