Definitely avoid the assign solution... remembering side effects on the global 
environment is hard and difficult to troubleshoot, and that also makes "doing 
that many times" unreasonably difficult. IMO even mentioning such an 
alternative is a dangerous distraction.

I also would advocate not mixing the act of obtaining a result with the act of 
displaying it (e.g. the view function). A three line script (input, analysis, 
output) is always easier to adapt to answer new questions than a one-line 
script is, and is arguably even more understandable.

On January 12, 2022 12:22:00 PM PST, Duncan Murdoch <murdoch.dun...@gmail.com> 
wrote:
>On 12/01/2022 3:07 p.m., Kai Yang via R-help wrote:
>> Hi all,
>> I created a function in R. It will be generate a table "temp". I can view it 
>> in R studio, but I cannot find it on the top right window in R studio. Can 
>> someone tell me how to find it in there? Same thing for f_table.
>> Thank you,
>> Kai
>> library(tidyverse)
>> 
>> f1 <- function(indata , subgrp1){
>>    subgrp1 <- enquo(subgrp1)
>>    indata0 <- indata
>>    temp    <- indata0 %>% select(!!subgrp1) %>% arrange(!!subgrp1) %>%
>>      group_by(!!subgrp1) %>%
>>      mutate(numbering =row_number(), max=max(numbering))
>>    view(temp)
>>    f_table <- table(temp$Species)
>>    view(f_table)
>> }
>> 
>> f1(iris, Species)
>> 
>
>Someone is sure to point out that this isn't an RStudio support list, 
>but your issue is with R, not with RStudio.  You created the table in 
>f1, but you never returned it.  The variable f_table is local to the 
>function.  You'd need the following code to do what you want:
>
>f1 <- function(indata , subgrp1){
>   subgrp1 <- enquo(subgrp1)
>   indata0 <- indata
>   temp    <- indata0 %>% select(!!subgrp1) %>% arrange(!!subgrp1) %>%
>     group_by(!!subgrp1) %>%
>     mutate(numbering =row_number(), max=max(numbering))
>   view(temp)
>   f_table <- table(temp$Species)
>   view(f_table)
>   f_table
>}
>
>f_table <- f1(iris, Species)
>
>It's not so easy to also make temp available.  You can do it with 
>assign(), but I think you'd be better off splitting f1 into two 
>functions, one to create temp, and one to create f_table.
>
>Duncan Murdoch
>
>______________________________________________
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to