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!