我正在学习一个R教程,我怀疑我必须使用这些函数中的一个,但我不确定是哪个(是的,我研究过它们,但在我对R术语变得更加流利之前,它们是相当令人困惑的)。
在我的工作目录中有一个文件夹"specdata“。Specdata包含数百个名为001.csv - 300.csv的CSV文件。
我正在使用的函数必须计算输入数量的csv文件的总行数。因此,如果函数中的参数是1:10,并且每个文件都有10行,则返回100。
这是我到目前为止所知道的:
complete <- function(directory,id = 1:332) {
setpath <- paste("/Users/gcameron/Desktop",directory,sep="/")
setwd(setpath)
csvfile <- sprintf("%03d.csv", id)
file <- read.csv(csvfile)
nrow(file)
}当ID参数是一个数字时,这是可行的,比如17。但是,如果我输入10:50作为参数,我会收到一个错误:
Error in file(file, "rt") : invalid 'description' argument我应该怎么做才能从输入的ID参数中计算出总行数?
发布于 2021-05-30 01:11:00
complete <- function(directory, id = 1:332){
mylist <- list.files(path = directory, pattern = ".csv")
result <- data.frame()
for(i in id){
my_data <- read.csv(paste(directory,mylist[i],sep=""))
res <- nrow(na.exclude(my_data)) #nrow count the row of the dataset
df <- data.frame("id" = i,"nobs" = res, stringsAsFactors=FALSE)
result <- rbind(result,df)
}
return(result)
}https://stackoverflow.com/questions/14358629
复制相似问题