我需要編寫一個帶有2個參數的函數:directory
和id
。 directory
本質上是R的直接工作。id
是該文件的名稱。所有文件的擴展名爲csv
,名稱在001到332之間。如何使用'sapply'或'lapply'來計算n個csv文件中的行數?
函數應該返回一個有兩列的數據幀:id
和nrow
。 id
是該文件的名稱,而nrow
是該文件中的行數。
我開始用下面的代碼,但這樣只會用,如果只有1 id
得到傳遞給函數的工作:
directory = 'specdata'
id = 1 # this should be able to take a list of numbers i.e. 1:332
id1 = if(nchar(id) == 1) {paste("00",id,sep="")}
else if (nchar()== 2) {paste("0",id,sep="")})
file = paste(directory,"/",as.character(id1),".csv", sep="")
data = read.csv(file)
casenum = nrow(data)
output = c(id1, casenum)
我如何修改代碼,這樣的功能可以,如果重演超過1 id
通過。例如,行id = c(1,2,3,5,6)
正在通過? 我正在考慮使用lapply
或sapply
,但不知道從哪裏開始。 謝謝,
也許你可以修改問題的標題來反映問題,也許可以按照'計算指定目錄中每個文件中的行數'的方式進行修改? –