Параметр функции R: «объект не найден» - PullRequest
0 голосов
/ 17 июня 2020

Я передаю CSV-файл с двумя столбцами, первый из которых является основным, а второй - курсами по этому направлению. По какой-то причине, когда я запускаю это, current_major не отображается в моем окружении, и когда я запускаю его в консоли, он сообщает мне, что объект «current» не найден. Мне сложно понять, что здесь не так.

course_data <- read.csv("file location")
majorCompare <- function(current, new){
  current_major <- which(course_data$major == current)
}
majorCompare("Animal Science", "American Studies")

1 Ответ

2 голосов
/ 17 июня 2020

Ваша функция создает объект current_major в рамках функции, а затем он исчезает в воздухе, когда функция завершается. Вот почему вы его не видите.

Вы могли бы использовать оператор суперприсваивания <<-

majorCompare <- function(current, new){
  current_major <<- which(course_data$major == current)
}

majorCompare("Animal Science", "American Studies")

Но в идеале функции должны возвращать что-то, а не изменить вашу глобальную среду. Так что сделайте это вместо этого.

majorCompare <- function(current, new){
   which(course_data$major == current)
}

current_major <- majorCompare("Animal Science", "American Studies")

Вы также объявили new как аргумент функции, но он никогда не используется в теле функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...