Verwendung von get () mit Ersatzfunktionen

Kann mir jemand erklären, warum das folgende Beispiel auftritt?

#Create simple dataframe
assign( "df" , data.frame( P = runif(5) , Q = runif(5) , R = runif(5) ) ) 

#Return the dataframe from the given character vector
get( "df" ) 
            P          Q          R
1  0.17396222 0.90994676 0.90590685
2  0.33860092 0.98078739 0.38058921
3  0.80751402 0.93229290 0.82853094
4  0.05460417 0.55448507 0.01605027
5  0.04250316 0.03808318 0.40678270

#Return the column names of df
colnames( get( "df" ) )
[1] "P" "Q" "R"

#But using a replacement function...
colnames( get( "df" ) ) <- c( "S" , "T" , "U" ) 
    Error in colnames(get("df")) <- c("S", "T", "U") : 
    target of assignment expands to non-language object

Ich würdeEIN) Ich möchte wissen, warum die Ersetzungsfunktionen auf diese Weise nicht funktionierenget()?

Undb) Wenn es einen Weg gibt, das Problem zu umgehen, den ich unten skizziere.

Mein Problem ist, dass ich viele Objekte (anhand eines Spielzeugbeispiels) in einer Schleife erstellt habe, etwa so:assign( paste( "Object" , i , sep = "." ) , rnorm(1000 , i) ), woheri ist ein Vektor, sagen wiri <- 1:1000 und dann möchte ich in der Lage sein, jedem Objekt in der Schleife Namen (zum Beispiel von einem anderen Vektor) zuzuweisen, abernames( get( paste( "Object" , i , sep = "." ) ) <- someNewName funktioniert nicht wie im obigen Beispiel.

Aberget( paste( "Object" , i , sep = "." ) ) gibt die Namen zurück (oderNULL) dieser Objekte.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage