gpt4 book ai didi

r - 计算一系列csv文件的行数

转载 作者:行者123 更新时间:2023-12-04 10:30:54 26 4
gpt4 key购买 nike

我正在学习 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。但是,如果我输入 say 10:50 作为参数,我会收到一个错误:
Error in file(file, "rt") : invalid 'description' argument

我应该怎么做才能从输入的 ID 参数中计算出总行数?

最佳答案

read.csv期望只读取一个文件,因此您需要遍历文件,R 惯用的方法是使用 sapply :

nrows <- sapply( csvfile, function(f) nrow(read.csv(f)) )
sum(nrows)

例如,这里重写了您的 complete功能:
complete <- function(directory,id = 1:332) {
csvfiles <- sprintf("/Users/gcameron/Desktop/%s/%03d.csv", directory, id)
nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)) )
sum(nrows)
}

关于r - 计算一系列csv文件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com