我正在使用一个应该返回具有 2 列的数据框(表?)的函数。
这是功能:
complete <- function(directory,id = 1:332) {
csvfiles <- sprintf("/Users/myname/Desktop/%s/%03d.csv", directory, id)
nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
data.frame(ID=sprintf('%03d', id), countrows=sapply(csvfiles,function(x) length(count.fields(x))))
}
样本输出:
ID countrows
/Users/myname/Desktop/specdata/100.csv 100 1097
/Users/myname/Desktop/specdata/101.csv 101 731
我需要输出只显示该文件路径中的数字。所以第一个记录应该是 100,第二个记录应该是 101,依此类推。
这在控制台中完成了工作
colID <- sprintf('%03d', id)
但我正试图毫无乐趣地将它整合到我的功能中。
我试过了:
nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
+ data.frame(ID=sprintf('%03d', id), countrows=sapply(csvfiles,function(x) length(count.fields(x))))
我试过了:
complete <- function(directory,id = 1:332) {
csvfiles <- sprintf("/Users/myname/Desktop/%s/%03d.csv", directory, id)
colID <- sprintf('%03d', id)
nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
data.frame(ColID, countrows=sapply(csvfiles,function(x) length(count.fields(x))))
}
我确定我只有一步之遥?
基于以下反馈
我试过这个
complete <- function(directory,id = 1:332) {
csvfiles <- sprintf("/Users/myname/Desktop/%s/%03d.csv", directory, id)
colID <- sprintf('%03d', id)
nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
data.frame(ID=id, countrows=sapply(csvfiles,function(x) length(count.fields(x))))
row.names(colID) <- basename(row.names(colID))
}
这会返回一个错误:“basename(row.names(colID)) 中的错误:预期的字符向量参数”