2016-04-09 2 views

ответ

0

Это очень плохая идея, но вы можете сделать

f <- function(P) { 
    x <<- P + 1 
    y <<- x + 2 

} 

f(2) 

Я не использую переменную c, потому что это также (весьма важно) имя функции. И это действительно не получится.

Если вам нужно передать несколько значений, возвращаемых первой функцией (f1) на другую функцию (f2), что вы должны сделать что-то вроде:

f1 <- function(P) { 
    x <- P + 1 
    y <- x + 2 
    list(x=x, y=y) 
} 

f2 <- function(x, y) { 
    x + y 
} 

r <- f1(2) 
f2(r$x, r$y) 

или

r <- f1(2) 
do.call(f2, r) 
+0

Спасибо Роберт Х, я знаю это, но есть и другие решения? – Tam

+0

Ваш скрипт работает с x и y как имя переменных, но когда имена c и d, у меня есть ошибка: Ошибка в f (2): не может изменить значение заблокированной привязки для 'c'. Я не понимаю, почему. – Tam

+0

Извините RobertH, у меня мало доверия с R, но почему это плохая идея? Что может быть лучшей стратегией для возврата большего количества одной переменной из одной функции? – Tam

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