Skip to content

Set attributes for object known by name

4 messages · Marc Girondot, Peter Langfelder, Bert Gunter

#
Hello everybody,

Has someone the solution to set attribute when variable is known by name ?

Thanks a lot

Marc

Let see this exemple:

# The variable name is stored as characters.

varname <- "myvarname"
assign(x = varname, data.frame(A=1:5, B=2:6))
attributes(myvarname)

$names
[1] "A" "B"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5

# perfect

attributes(get(varname))

# It works also

$names
[1] "A" "B"
$class
[1] "data.frame"

$row.names
[1] 1 2 3 4 5

attributes(myvarname)$NewAtt <- "MyAtt"

# It works

attributes(get(varname))$NewAtt2 <- "MyAtt2"
Error in attributes(get(varname))$NewAtt2 <- "MyAtt2" :
 ? impossible de trouver la fonction "get<-"

# Error...
#
I would try something like

x = get(myvarname)
attr(x, "foo") = "bar"
assign(varname, x)

HTH,

Peter

On Wed, Oct 10, 2018 at 9:15 PM Marc Girondot via R-help <
r-help at r-project.org> wrote:

            

  
  
#
oops, I think the right code would be

x = get(varname)
attr(x, "foo") = "bar"
assign(varname, x)

On Wed, Oct 10, 2018 at 9:30 PM Peter Langfelder <peter.langfelder at gmail.com>
wrote:

  
  
#
Well, it can be done without a temporary variable, but I'm not sure you
would want to.
Anyway...

## simplified example
[1] 1
attr(,"b")
[1] "hi"


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 Wed, Oct 10, 2018 at 9:48 PM Peter Langfelder <peter.langfelder at gmail.com>
wrote: