Во-первых, вот мой код:Добавляя значения к вектору в функции
count <- vector()
f1 <- function(x) {
file <- read.csv(x)
date <- grep(pattern = "lalala", names(file))
file <- file[date]
file.row <- unlist(file)
num <- length(unique(file.row))
count <- c(count, num)
}
files <- list.files(path="path/to/directory", pattern="*.csv", full.names=TRUE)
lapply(files, f1)
Я пытаюсь сохранить целое, Num, в счетный вектор. Однако вызов этого скрипта дает мне пустой вектор счета, поэтому я тестировал, чтобы узнать, какое значение счетчика было при каждом запуске функции, и оно печатает правильные значения, за исключением того, что вектор count повторно инициализирует пустой вектор в начале каждого запуска функции. Что происходит и как я могу это исправить?
Проблема в том, что вашей функции требуется возвращаемое значение. Кстати, динамически растущие вещи - плохая идея. – Frank
«вектор счета переинициализируется на пустой вектор в начале каждого запуска функции» - так работают функции на языках функционального программирования (например, R). – Gregor
R ведет себя так, как должно, читайте в [лексическом масштабе] (http://adv-r.had.co.nz/Functions.html#lexical-scopingl) – jeremycg