Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-10 Thread Rui Barradas

Hello,

I believe that the point we are missing is that datatable$column stores 
the *names* of the graphs, not the graph objects themselves. So in the 
loop the objects must be retrieved with mget() or get().


First create a reproducible example.



library(tidygraph)

my_function <- function(g){
  stopifnot(inherits(g, "igraph"))
  g %>% mutate(centrality = centrality_pagerank())
}

MYSUBNET1 <- create_notable('bull')
iris_clust <- hclust(dist(iris[1:4]))
MYSUBNET2 <- as_tbl_graph(iris_clust)
MYSUBNET3 <- play_smallworld(1, 100, 3, 0.05)

datatable <- data.frame(column = paste0("MYSUBNET", 1:3))



Now apply the function above to each of the "tbl_graph" objects.

1. Get all objects and apply the function in one instruction. Then 
assign the new names.



result <- lapply(mget(datatable$column, envir = .GlobalEnv), my_function)
names(result) <- paste("subnet", datatable$column, sep = "_")


2. Loop through the column with lapply, getting one object and applying 
the function one at a time. Then assign the new names.




result2 <- lapply(datatable$column, function(net_name){
  NET <- get(net_name, envir = .GlobalEnv)
  my_function(NET)
})
names(result2) <- paste("subnet", datatable$column, sep = "_")



3. Loop through the column with a for loop, getting one object and 
applying the function one at a time. Then assign the new names.




result3 <- vector("list", length = nrow(datatable))
for(i in seq_along(datatable$column)){
  net_name <- datatable$column[i]
  NET <- get(net_name, envir = .GlobalEnv)
  result3[[i]] <- my_function(NET)
}
names(result3) <- paste("subnet", datatable$column, sep = "_")



4. Now check that all 3 solutions give the same result.


identical(result, result2)
#[1] TRUE
identical(result, result3)
#[1] TRUE


Is this it?

Rui Barradas


Às 17:23 de 09/04/21, Wolfgang Grond escreveu:

As I wrote before, I calculate tbl_graph objects, which will be joined 
afterwards. Not too much, the number of graphs to calculate is in the range 
between 5 to 20.

Further steps are not automated, because they depend on how the single graphs 
look like, and which of them will be joined.

For this reason I thought it would be nice to have the single tbl_ graph 
objects stored in variables having the name of the graph.

For this reason I tried to find a better solution instead of assigning each 
graph by hand:

subnet_MYSUBNET <- my_function(MYSUBNET)

To my understanding it is therefore neccessary to assign the result of the 
function to a variable whose name consists of a fixed string and the content of 
a further variable.

That was the intention for me to ask.

Am 9. April 2021 17:22:05 MESZ schrieb David Winsemius :


On 4/9/21 5:21 AM, Wolfgang Grond wrote:

Greg,

here I get the error message:

Error my_function(val) :

cannot find function my_function.


I'm guessing that you are following someone else's blog and have failed

one of two things:

- understand that what was meant by the author was that you were
assumed
to have a function in mind to use for a programming strategy being
illustrated

- or you were copying and pasting only part of a blog and failed to
paste in the code from above where there was earlier code defining
`my_function`



Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall

:

Wolfgang,


result <- assign(paste("subnet_",  val, sep = "")

result <- my_function(val)

i don't understand why you are twice assigning to =result=.  also,

the

first assignment doesn't seem well formatted (t's missing a value?).

did you mean something like

: assign(paste("subnet_",  val, sep = ""), my_function(val))

(which i would think should work)?

cheers, Greg

__
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.


-
Numberland - Dr. Wolfgang Grond
Diplomphysiker, TQM-Assessor (EFQM)
Six Sigma Green Belt
Ingenieurbüro / Engineering Consultancy
Lohfeld 20, DE-95326 Kulmbach, Germany
Phone: +49 9221 6919131
Fax: +49 9221 6919156
Mail: gr...@numberland.com
URL: http://www.numberland.com
[[alternative HTML version deleted]]

__
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.


__
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.


[[alternative HTML version deleted]]

__
R-help@r-project.org 

Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Bert Gunter
I freely admit that I do not understand what you mean. But it sounds like
you are trying to make things more complicated than necessary.

Perhaps this little example may help clarify the issues:


> a <- 1; b <- 2; d <- c(3,5)
> stuff <- lapply(list(a,b,d),function(x)x^2)
> stuff
[[1]]
[1] 1

[[2]]
[1] 4

[[3]]
[1]  9 25

> stuff[[3]]
[1]  9 25

Note that one may apply (almost) any function that returns objects (and
doesn't have nasty side effects, I suppose), including graphical objects,
and store them in the list that is returned. These objects can then be
accessed as usual and manipulated/displayed/assigned ... whatever.

If this misunderstands your query and is irrelevant, do not bother to
explain. Or reply. Won't be the first time I did not get it.

If OTOH this is a complete mystery to you, then you need to spend some time
learning about R lists and how. to use them.

Cheers,
Bert



Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Fri, Apr 9, 2021 at 7:22 PM Wolfgang Grond  wrote:

> As I wrote before, I calculate tbl_graph objects, which will be joined
> afterwards. Not too much, the number of graphs to calculate is in the range
> between 5 to 20.
>
> Further steps are not automated, because they depend on how the single
> graphs look like, and which of them will be joined.
>
> For this reason I thought it would be nice to have the single tbl_ graph
> objects stored in variables having the name of the graph.
>
> For this reason I tried to find a better solution instead of assigning
> each graph by hand:
>
> subnet_MYSUBNET <- my_function(MYSUBNET)
>
> To my understanding it is therefore neccessary to assign the result of the
> function to a variable whose name consists of a fixed string and the
> content of a further variable.
>
> That was the intention for me to ask.
>
> Am 9. April 2021 17:22:05 MESZ schrieb David Winsemius <
> dwinsem...@comcast.net>:
> >
> >On 4/9/21 5:21 AM, Wolfgang Grond wrote:
> >> Greg,
> >>
> >> here I get the error message:
> >>
> >> Error my_function(val) :
> >>
> >> cannot find function my_function.
> >
> >I'm guessing that you are following someone else's blog and have failed
> >
> >one of two things:
> >
> >- understand that what was meant by the author was that you were
> >assumed
> >to have a function in mind to use for a programming strategy being
> >illustrated
> >
> >- or you were copying and pasting only part of a blog and failed to
> >paste in the code from above where there was earlier code defining
> >`my_function`
> >
> >>
> >> Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall
> >:
> >>> Wolfgang,
> >>>
>  result <- assign(paste("subnet_",  val, sep = "")
> 
>  result <- my_function(val)
> >>> i don't understand why you are twice assigning to =result=.  also,
> >the
> >>> first assignment doesn't seem well formatted (t's missing a value?).
> >>>
> >>> did you mean something like
> >>>
> >>> : assign(paste("subnet_",  val, sep = ""), my_function(val))
> >>>
> >>> (which i would think should work)?
> >>>
> >>> cheers, Greg
> >>>
> >>> __
> >>> 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.
> >>
> >> -
> >> Numberland - Dr. Wolfgang Grond
> >> Diplomphysiker, TQM-Assessor (EFQM)
> >> Six Sigma Green Belt
> >> Ingenieurbüro / Engineering Consultancy
> >> Lohfeld 20, DE-95326 Kulmbach, Germany
> >> Phone: +49 9221 6919131
> >> Fax: +49 9221 6919156
> >> Mail: gr...@numberland.com
> >> URL: http://www.numberland.com
> >>  [[alternative HTML version deleted]]
> >>
> >> __
> >> 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.
> >
> >__
> >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.
>
> [[alternative HTML version deleted]]
>
> __
> 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.
>

[[alternative HTML version deleted]]


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
As I wrote before, I calculate tbl_graph objects, which will be joined 
afterwards. Not too much, the number of graphs to calculate is in the range 
between 5 to 20.

Further steps are not automated, because they depend on how the single graphs 
look like, and which of them will be joined.

For this reason I thought it would be nice to have the single tbl_ graph 
objects stored in variables having the name of the graph.

For this reason I tried to find a better solution instead of assigning each 
graph by hand:

subnet_MYSUBNET <- my_function(MYSUBNET)

To my understanding it is therefore neccessary to assign the result of the 
function to a variable whose name consists of a fixed string and the content of 
a further variable.

That was the intention for me to ask.

Am 9. April 2021 17:22:05 MESZ schrieb David Winsemius :
>
>On 4/9/21 5:21 AM, Wolfgang Grond wrote:
>> Greg,
>>
>> here I get the error message:
>>
>> Error my_function(val) :
>>
>> cannot find function my_function.
>
>I'm guessing that you are following someone else's blog and have failed
>
>one of two things:
>
>- understand that what was meant by the author was that you were
>assumed 
>to have a function in mind to use for a programming strategy being 
>illustrated
>
>- or you were copying and pasting only part of a blog and failed to 
>paste in the code from above where there was earlier code defining 
>`my_function`
>
>>
>> Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall
>:
>>> Wolfgang,
>>>
 result <- assign(paste("subnet_",  val, sep = "")

 result <- my_function(val)
>>> i don't understand why you are twice assigning to =result=.  also,
>the
>>> first assignment doesn't seem well formatted (t's missing a value?).
>>>
>>> did you mean something like
>>>
>>> : assign(paste("subnet_",  val, sep = ""), my_function(val))
>>>
>>> (which i would think should work)?
>>>
>>> cheers, Greg
>>>
>>> __
>>> 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.
>>
>> -
>> Numberland - Dr. Wolfgang Grond
>> Diplomphysiker, TQM-Assessor (EFQM)
>> Six Sigma Green Belt
>> Ingenieurbüro / Engineering Consultancy
>> Lohfeld 20, DE-95326 Kulmbach, Germany
>> Phone: +49 9221 6919131
>> Fax: +49 9221 6919156
>> Mail: gr...@numberland.com
>> URL: http://www.numberland.com
>>  [[alternative HTML version deleted]]
>>
>> __
>> 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.
>
>__
>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.

[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
David,

I don't think that this is the case.

When I do the calculation like this

subnet_MYSUBNET <- my_function(MYSUBNET),

i.e. assigning a variable by hand to each function result, all is fine.



Am 9. April 2021 17:22:05 MESZ schrieb David Winsemius :
>
>On 4/9/21 5:21 AM, Wolfgang Grond wrote:
>> Greg,
>>
>> here I get the error message:
>>
>> Error my_function(val) :
>>
>> cannot find function my_function.
>
>I'm guessing that you are following someone else's blog and have failed
>
>one of two things:
>
>- understand that what was meant by the author was that you were
>assumed 
>to have a function in mind to use for a programming strategy being 
>illustrated
>
>- or you were copying and pasting only part of a blog and failed to 
>paste in the code from above where there was earlier code defining 
>`my_function`
>
>>
>> Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall
>:
>>> Wolfgang,
>>>
 result <- assign(paste("subnet_",  val, sep = "")

 result <- my_function(val)
>>> i don't understand why you are twice assigning to =result=.  also,
>the
>>> first assignment doesn't seem well formatted (t's missing a value?).
>>>
>>> did you mean something like
>>>
>>> : assign(paste("subnet_",  val, sep = ""), my_function(val))
>>>
>>> (which i would think should work)?
>>>
>>> cheers, Greg
>>>
>>> __
>>> 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.
>>
>> -
>> Numberland - Dr. Wolfgang Grond
>> Diplomphysiker, TQM-Assessor (EFQM)
>> Six Sigma Green Belt
>> Ingenieurbüro / Engineering Consultancy
>> Lohfeld 20, DE-95326 Kulmbach, Germany
>> Phone: +49 9221 6919131
>> Fax: +49 9221 6919156
>> Mail: gr...@numberland.com
>> URL: http://www.numberland.com
>>  [[alternative HTML version deleted]]
>>
>> __
>> 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.
>
>__
>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.

[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
Folks,

first of all - thanks a lot for your hints!

I will try each again and think about, why I get error messages.

But to resume: if I understand you right:

there is no way to do something like this:

$name = $result?

Regards

Wolfgang

Am 9. April 2021 15:43:27 MESZ schrieb Rui Barradas :
>Hello,
>
>my_function seems to be a function you have defined somewhere in your
>code.
>In your original post you mention it 3 times, this is the first one:
>
>
>subnet_MYSUBNET <- my_function(MYSUBNET)
>
>
>So Ivan's and Greg's code should work, they use a function you haven't 
>posted but is assumed to exist.
>
>Note: if you are more comfortable with for loops than with *apply, I 
>would rewrite Ivan's for loop solution as
>
>
>results <- vector("list", length = nrow(datatable))
>for(val in datatable$column) {
>   results[[as.character(val)]] <- my_function(val)
>}
>
>
>To keep extending a vector or list object in a loop is inefficient,
>this 
>creates the list with the right length beforehand.
>
>
>Hope this helps,
>
>Rui Barradas
>
>Às 13:21 de 09/04/21, Wolfgang Grond escreveu:
>> Greg,
>> 
>> here I get the error message:
>> 
>> Error my_function(val) :
>> 
>> cannot find function my_function.
>> 
>> Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall
>:
>>> Wolfgang,
>>>
 result <- assign(paste("subnet_",  val, sep = "")

 result <- my_function(val)
>>>
>>> i don't understand why you are twice assigning to =result=.  also,
>the
>>> first assignment doesn't seem well formatted (t's missing a value?).
>>>
>>> did you mean something like
>>>
>>> : assign(paste("subnet_",  val, sep = ""), my_function(val))
>>>
>>> (which i would think should work)?
>>>
>>> cheers, Greg
>>>
>>> __
>>> 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.
>> 
>> 
>> -
>> Numberland - Dr. Wolfgang Grond
>> Diplomphysiker, TQM-Assessor (EFQM)
>> Six Sigma Green Belt
>> Ingenieurbüro / Engineering Consultancy
>> Lohfeld 20, DE-95326 Kulmbach, Germany
>> Phone: +49 9221 6919131
>> Fax: +49 9221 6919156
>> Mail: gr...@numberland.com
>> URL: http://www.numberland.com
>>  [[alternative HTML version deleted]]
>> 
>> __
>> 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.
>>
>
>__
>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.

[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread David Winsemius



On 4/9/21 5:21 AM, Wolfgang Grond wrote:

Greg,

here I get the error message:

Error my_function(val) :

cannot find function my_function.


I'm guessing that you are following someone else's blog and have failed 
one of two things:


- understand that what was meant by the author was that you were assumed 
to have a function in mind to use for a programming strategy being 
illustrated


- or you were copying and pasting only part of a blog and failed to 
paste in the code from above where there was earlier code defining 
`my_function`




Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall :

Wolfgang,


result <- assign(paste("subnet_",  val, sep = "")

result <- my_function(val)

i don't understand why you are twice assigning to =result=.  also, the
first assignment doesn't seem well formatted (t's missing a value?).

did you mean something like

: assign(paste("subnet_",  val, sep = ""), my_function(val))

(which i would think should work)?

cheers, Greg

__
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.


-
Numberland - Dr. Wolfgang Grond
Diplomphysiker, TQM-Assessor (EFQM)
Six Sigma Green Belt
Ingenieurbüro / Engineering Consultancy
Lohfeld 20, DE-95326 Kulmbach, Germany
Phone: +49 9221 6919131
Fax: +49 9221 6919156
Mail: gr...@numberland.com
URL: http://www.numberland.com
[[alternative HTML version deleted]]

__
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.


__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Rui Barradas

Hello,

my_function seems to be a function you have defined somewhere in your code.
In your original post you mention it 3 times, this is the first one:


subnet_MYSUBNET <- my_function(MYSUBNET)


So Ivan's and Greg's code should work, they use a function you haven't 
posted but is assumed to exist.


Note: if you are more comfortable with for loops than with *apply, I 
would rewrite Ivan's for loop solution as



results <- vector("list", length = nrow(datatable))
for(val in datatable$column) {
results[[as.character(val)]] <- my_function(val)
}


To keep extending a vector or list object in a loop is inefficient, this 
creates the list with the right length beforehand.



Hope this helps,

Rui Barradas

Às 13:21 de 09/04/21, Wolfgang Grond escreveu:

Greg,

here I get the error message:

Error my_function(val) :

cannot find function my_function.

Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall :

Wolfgang,


result <- assign(paste("subnet_",  val, sep = "")

result <- my_function(val)


i don't understand why you are twice assigning to =result=.  also, the
first assignment doesn't seem well formatted (t's missing a value?).

did you mean something like

: assign(paste("subnet_",  val, sep = ""), my_function(val))

(which i would think should work)?

cheers, Greg

__
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.



-
Numberland - Dr. Wolfgang Grond
Diplomphysiker, TQM-Assessor (EFQM)
Six Sigma Green Belt
Ingenieurbüro / Engineering Consultancy
Lohfeld 20, DE-95326 Kulmbach, Germany
Phone: +49 9221 6919131
Fax: +49 9221 6919156
Mail: gr...@numberland.com
URL: http://www.numberland.com
[[alternative HTML version deleted]]

__
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.



__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
Greg,

here I get the error message:

Error my_function(val) :

cannot find function my_function.

Am 9. April 2021 12:35:40 MESZ schrieb Greg Minshall :
>Wolfgang,
>
>> result <- assign(paste("subnet_",  val, sep = "")
>> 
>> result <- my_function(val)
>
>i don't understand why you are twice assigning to =result=.  also, the
>first assignment doesn't seem well formatted (t's missing a value?).
>
>did you mean something like
>
>: assign(paste("subnet_",  val, sep = ""), my_function(val))
>
>(which i would think should work)?
>
>cheers, Greg
>
>__
>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.


-
Numberland - Dr. Wolfgang Grond
Diplomphysiker, TQM-Assessor (EFQM)
Six Sigma Green Belt
Ingenieurbüro / Engineering Consultancy
Lohfeld 20, DE-95326 Kulmbach, Germany
Phone: +49 9221 6919131
Fax: +49 9221 6919156
Mail: gr...@numberland.com
URL: http://www.numberland.com
[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
Ivan,

same situation when I try your list() solution:

Error in eval ... : object 'function' not found ( I think anything about 
my_function is meant).


Am 9. April 2021 13:43:57 MESZ schrieb Ivan Krylov :
>Dear Wolfgang,
>
>On Fri, 9 Apr 2021 11:48:55 +0200
>Wolfgang Grond  wrote:
>
>> I want to assign the subnets to variables whose names contain the
>> name of the subnet
>
>Apologies if this sounds too opinionated, but creating variable names
>from variable values is a FAQ in a different dynamic language:
>
>https://perldoc.perl.org/perlfaq7#How-can-I-use-a-variable-as-a-variable-name?
>
>Most of the explanation doesn't apply to R, of course, but the main
>idea here is to use data structures instead of causing (potential,
>unlikely, but still) conflicts in the variable namespace. What if you
>create a list of function values instead of just a bunch of variables?
>
>results <- list()
>for(i in 1:nrow(datatable)) {
>   val <- datatable$column[i]
>   results[[as.character(val)]] <- my_function(val)
>}
>
>Or even
>
>results <- lapply(setNames(nm = datatable$column), my_function)
>
>Wouldn't that be more convenient?
>
>-- 
>Best regards,
>Ivan
>
>__
>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.


-
Numberland - Dr. Wolfgang Grond
Diplomphysiker, TQM-Assessor (EFQM)
Six Sigma Green Belt
Ingenieurbüro / Engineering Consultancy
Lohfeld 20, DE-95326 Kulmbach, Germany
Phone: +49 9221 6919131
Fax: +49 9221 6919156
Mail: gr...@numberland.com
URL: http://www.numberland.com
[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
Dear Ivan,

when I try your solution with lapply as below I get the following error message:

Error in eval ... : object 'function' not found ( I think anything about 
my_function is meant).

Am 9. April 2021 13:43:57 MESZ schrieb Ivan Krylov :
>Dear Wolfgang,
>
>On Fri, 9 Apr 2021 11:48:55 +0200
>Wolfgang Grond  wrote:
>
>> I want to assign the subnets to variables whose names contain the
>> name of the subnet
>
>Apologies if this sounds too opinionated, but creating variable names
>from variable values is a FAQ in a different dynamic language:
>
>https://perldoc.perl.org/perlfaq7#How-can-I-use-a-variable-as-a-variable-name?
>
>Most of the explanation doesn't apply to R, of course, but the main
>idea here is to use data structures instead of causing (potential,
>unlikely, but still) conflicts in the variable namespace. What if you
>create a list of function values instead of just a bunch of variables?
>
>results <- list()
>for(i in 1:nrow(datatable)) {
>   val <- datatable$column[i]
>   results[[as.character(val)]] <- my_function(val)
>}
>
>Or even
>
>results <- lapply(setNames(nm = datatable$column), my_function)
>
>Wouldn't that be more convenient?
>
>-- 
>Best regards,
>Ivan
>
>__
>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.

[[alternative HTML version deleted]]

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Ivan Krylov
Dear Wolfgang,

On Fri, 9 Apr 2021 11:48:55 +0200
Wolfgang Grond  wrote:

> I want to assign the subnets to variables whose names contain the
> name of the subnet

Apologies if this sounds too opinionated, but creating variable names
from variable values is a FAQ in a different dynamic language:

https://perldoc.perl.org/perlfaq7#How-can-I-use-a-variable-as-a-variable-name?

Most of the explanation doesn't apply to R, of course, but the main
idea here is to use data structures instead of causing (potential,
unlikely, but still) conflicts in the variable namespace. What if you
create a list of function values instead of just a bunch of variables?

results <- list()
for(i in 1:nrow(datatable)) {
val <- datatable$column[i]
results[[as.character(val)]] <- my_function(val)
}

Or even

results <- lapply(setNames(nm = datatable$column), my_function)

Wouldn't that be more convenient?

-- 
Best regards,
Ivan

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Greg Minshall
Wolfgang,

> result <- assign(paste("subnet_",  val, sep = "")
> 
> result <- my_function(val)

i don't understand why you are twice assigning to =result=.  also, the
first assignment doesn't seem well formatted (t's missing a value?).

did you mean something like

: assign(paste("subnet_",  val, sep = ""), my_function(val))

(which i would think should work)?

cheers, Greg

__
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.


Re: [R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread PIKAL Petr
Hi


I may be wrong but

> result <- assign(paste("subnet_",  val, sep = "")
here you miss the right parentheses
maybe you intended
assign(result, paste("subnet_",  val, sep = ""))

> result <- my_function(val)
but here you change (rewrite) the result variable to my_function result

So your overall cycle gives you only one result variable containing last value 
computed by my_function.

Cheers
Petr

> -Original Message-
> From: R-help  On Behalf Of Wolfgang Grond
> Sent: Friday, April 9, 2021 11:49 AM
> To: mailman, r-help 
> Subject: [R] Assigning several lists to variables whose names are contained 
> in
> other variables
>
> Dear all,
>
> I'm creating a list (which is a tbl_graph) by a function, and assign the 
> result to
> a variable:
>
> subnet_MYSUBNET <- my_function(MYSUBNET)
>
> # MYSUBNET: a tbl_graph
>
> Because there are multiple subnets to create, I can get the names of the
> subnets (MYSUBNET1, MYSUBNET2, MYSUBNET3, etc.) from a row in a
> dataframe column.
>
> subnet_MYSUBNET <- my_function(datatable$column[i])
>
> Because I know how many subnets to create - nrow(dataframe) I want to
> assign the subnets to variables whose names contain the name of the subnet
>
> For this to work I have to assign a variable name which is contained in an
> other variable name:
>
> #
>
> for(i in 1:nrow(datatable)) {
>
> val <- datatable$column[i]
>
> result <- assign(paste("subnet_",  val, sep = "")
>
> result <- my_function(val)
>
> }
>
> this works in bash, but seems not to work in R - I don't succeed at least.
>
> Am I wrong?
>
> Where is my mistake?
>
> Many thanks in advance for any hint.
>
> Wolfgang
>
>
>
>   [[alternative HTML version deleted]]
>
> __
> 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.
__
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.


[R] Assigning several lists to variables whose names are contained in other variables

2021-04-09 Thread Wolfgang Grond
Dear all,

I'm creating a list (which is a tbl_graph) by a function, and assign the 
result to a variable:

subnet_MYSUBNET <- my_function(MYSUBNET)

# MYSUBNET: a tbl_graph

Because there are multiple subnets to create, I can get the names of the 
subnets (MYSUBNET1, MYSUBNET2, MYSUBNET3, etc.) from a row in a 
dataframe column.

subnet_MYSUBNET <- my_function(datatable$column[i])

Because I know how many subnets to create - nrow(dataframe) I want to 
assign the subnets to variables whose names contain the name of the subnet

For this to work I have to assign a variable name which is contained in 
an other variable name:

#

for(i in 1:nrow(datatable)) {

val <- datatable$column[i]

result <- assign(paste("subnet_",  val, sep = "")

result <- my_function(val)

}

this works in bash, but seems not to work in R - I don't succeed at least.

Am I wrong?

Where is my mistake?

Many thanks in advance for any hint.

Wolfgang



[[alternative HTML version deleted]]

__
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.