Как незаметно вывести часть вывода в R - PullRequest
0 голосов
/ 13 мая 2019

В моей функции R ниже, я хочу, чтобы объект output был всегда видимым выводимым.Но мне было интересно, есть ли способ также невидимым, но извлекаемым выходным объектом cl, который является вызовом функции, с этим?

Если это невозможно, как визуально добавитьcl в output, чтобы cl можно было извлечь после выполнения функции вместе с output?

foo <- function(one = T){

 cl <- match.call()  

output <- if(one) data.frame(d = 6:8, long = c(F, F,F)) else
list(Study1 = data.frame(d = 6:8, long = c(F, F,F)), Study2 = data.frame(d = 9:11, long = c(T, T, F)) )

 return(output)
 }

# Example of use:
foo()

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете return list вывода из функции

foo <- function(one = T){
     cl <- match.call()  
     output <- if(one) data.frame(d = 6:8, long = c(F, F,F)) else
     list(Study1 = data.frame(d = 6:8, long = c(F, F,F)), 
         Study2 = data.frame(d = 9:11, long = c(T, T, F)) )
    return(list(output = output, cl = cl))
}

, а затем использовать eval для оценки функции

a = foo(TRUE)

eval(a$cl)
#$output
#  d  long
#1 6 FALSE
#2 7 FALSE
#3 8 FALSE

#$cl
#foo(one = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...