【发布时间】:2015-08-23 15:49:56
【问题描述】:
我有一个包含大型模型输出的文件列表。 我使用以下方法将这些加载为数据表:
files <- list.files(path.expand("/XYZ/"), pattern = ".*\\.rds", full.names = TRUE)
dt<- as.data.table(files)
这个数据表“dt”只有 1 列,即文件名。 例如 XZY_00_34234.rds
每个文件名的第 50 和 51 个字符是一个数字。 我想为每个文件创建一个包含该 2 位数字的数据表。
我用过:
index <- as.data.table(as.integer(substr(dt,50,51)))
这为我提供了第一个文件的正确值。 我想我应该可以使用 apply 对文件的每一行运行它
我试过了:
integers <- as.data.table(apply(dt,1,as.integer(substr(50,51))))
但是得到:
substr(50, 51) 中的错误:缺少参数“stop”,没有默认值
任何建议都非常感谢!
【问题讨论】:
-
integers <- as.data.table(apply(dt, 1, function(x) as.integer(substr(x, 50, 51))))
标签: r data.table apply