Я пытаюсь преобразовать переменную символа в логическое выражение, чтобы использовать его позже в аргументе подмножества функции подмножества(), и все это внутри большей функции, называемой early_prep(), которую я создал. Проблема заключается в том, когда я исполняюПреобразуйте переменную символа в логическое выражение, чтобы использовать ее позже внутри аргумента подмножества функции подмножества()
early_prep(file_name = "n44.txt", keep_rows = "block > 1")
удаляет все строки в моем raw_data кадре данных, а не удалять только те, в которых блок> 1.
Любая помощь будет принята с благодарностью.
Бест, Аяла
Беллоу соответствующая часть функции early_prep():
early_prep <- function(file_name,keep_rows = FALSE){
read_data <- function(file_name){
extension <- substr(file_name, nchar(file_name) - 3, nchar(file_name))
if (extension == ".txt"){
raw_data <<- read.table(file_name, header = TRUE)
# Print to console
print("#### Reading txt file ####", quote = FALSE)
} else if (extension == ".csv"){
raw_data <<- read.csv(file_name, header = TRUE)
# Print to console
print("#### Reading csv file ####", quote = FALSE)
} else {
# Stops running the function
stop("#### file_name should end with txt or csv extension ####", quote = FALSE)
}
}
read_data(file_name)
if (keep_rows != FALSE) {
keep_rows <- as.logical(keep_rows)
raw_data <<- subset(raw_data, keep_rows)
# Print to console
print("#### Deleting unnecessary rows in raw_data ####", quote = FALSE)
}
}
Почему не называйте это: 'early_prep (file_name = "n44.txt", keep_rows = block> 1) '. Вот как используется «подмножество» подмножества «подмножество» и как вызываются все функции регрессии, когда они передают выражения своим «подмножествам». Однако в «подмножестве» вам сообщается, что это функция удобства, не предназначенная для использования внутри функций. Вы не хотели бы выполнять предварительную оценку 'as.logical (keep_rows)', потому что выражение не будет иметь надлежащей среды. Это то, что предполагается подмножество. –