2016-08-09 5 views
-2

У меня есть функция с несколькими элементами, которые мне бы хотелось были доступны (a1, и f1). С этой целью я добавил список при возврате функции. return(list(a1=a2,a2=a2,f1=f1))Сохранение объектов функции без печати в R

Однако, когда я запускаю функцию, есть некоторые, которые я бы хотел напечатать. Такие как a2 и f1. Поэтому мой вопрос заключается в том, чтобы получить доступ к моим объектам как a2 или f1 без печати?

ответ

2

Просто присвойте результат вашей функции переменной, используя <-. Например, если ваша функция foo, просто выполнение foo() распечатает полученный список на экране, но res <- foo() не будет, и вы можете получить доступ к res$a1, res$a2 и res$f1.

Если вы хотите напечатать некоторые из переменных, вы явно вызываете print(). Например, поставьте в конце своей функции:

print(a1) 
return(list(a1=a1, a2=a2, f1=f1)) 

Иногда мы хотим тихо вернуть все значения функций. Мы могли бы сделать

invisible(list(a1=a1, a2=a2, f1=f1)) 
1

Я не знаю, если я получил это право, но вы можете вызвать функцию и назначить выход переменного, так что вы можете выбрать позже чем печатать.

Именование списка также поможет вам.

EDIT: Добавлено имя списка, используя @ cuttlefish44 совет.

SomeFunctionName <- function(){ 

    a <- 1 
    b <- rep(1,10) 
    c <- rep("aaa",20) 
    d <- list(a = a,b = b,c = c) 
    return(d) 
} 

var <- SomeFunctionName() 

var$a 
var$b 
var$c 

Именование списка также поможет вам.

+1

'd <- список (a, b, c); имена (d) <- c ("a", "b", "c") 'равнозначны' d <- list (a = a, b = b, c = c) '. – cuttlefish44

Смежные вопросы