Я хочу написать функцию, которая проверяет определенное количество файлов, имя id .csv, и это вернет число строк без NA
s. Вот что я написал:Нежелательные строки в data.frame
complete <- function(directory, id) {
setwd(directory)
my_list <- list.files(getwd(), pattern="*.csv", full.names=TRUE)
my_id <- numeric()
my_output<-data.frame()
my_count<-numeric()
for(integer in id){
my_data <- read.csv(my_list[integer])
my_subset <- subset(my_data, sulfate !=0 & nitrate !=0)
my_count[integer]<-length(my_subset[[1]])
my_id[integer] <- integer
}
my_output<-cbind(my_id, my_count)
my_output
}
complete("/home/jpasquier/Téléchargements/specdata", c(1,3))
Но вот результат:
> complete("/home/jpasquier/Téléchargements/specdata", c(1,3))
my_id my_count
[1,] 1 117
[2,] NA NA
[3,] 3 243
Так что я не понимаю, почему есть нежелательная ряд number2, ведь не существует целое, равным 2 в моем аргументе id. Спасибо.
Не изобретайте колесо, смотрите в [ complete.cases] (https://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.html) – zx8754
Я не вижу, где вы думаете, что подсчитываете количество строк без NA. @ zx8754 часто нужно изобретать колесо, чтобы учиться чему-то – rawr
Согласитесь, «узнайте вещи», функция называется 'complete', которая проверяет, являются ли 2 переменные не нулями ... – zx8754