Я пишу простую функцию, которая принимает два аргумента (состояние, результат). Состояние используется для подмножества фрейма данных позже.
Сказав это, часть требования состоит в том, чтобы состояние было вектором символов длиной 2. Мне нужно написать больше кода, чтобы гарантировать, что переданное состояние соответствует этому требованию.
Итак, я написал следующее:
best <- function(state, outcome) {
outcome <- read.csv("outcome-of-care-measures.csv", colClasses = "character")
state <- vector(mode = "character", length = 2)
st.checkTbl <- outcome[8]
state
}
Однако, когда я вызываю функцию и передаю аргументы:
best("AXA") or best("FOO") or even best("TX") or best(AL)
Все, что я возвращаю, это: "" ""
Если я закомментирую #state ‹- ... тогда аргумент передается нормально и выводится« FOO »,« AXA »,« TX »и т. Д.
Как я могу гарантировать, что аргумент, переданный функции, сохранен как переменная (состояние) в функции? Или я слишком много думаю об этом? На самом деле я просто хотел проверить, что то, что я передаю аргументу состояния, можно распечатать в тестовых целях.
. Простите за 101 урок.
state
. Возможно, вы захотите предоставить для написания своих собственных функций раздел Введение в руководство по R. - person Thomas   schedule 25.03.2015state <- vector(...)
внутри функции - person Rich Scriven   schedule 25.03.2015f <- function(x) as.list(match.call()[-1]); f("hello")
и вы видите, чтоx
был введен как привет - person Rich Scriven   schedule 25.03.2015debug(best)
и просматривать все значения объектов внутри выполнения вашей функции. - person Thomas   schedule 25.03.2015