Używanie get () z funkcjami zastępczymi

Czy ktoś może mi wyjaśnić, dlaczego występuje następujący przykład?

#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

IDZA) lubię wiedzieć, dlaczego funkcje zastępcze nie działają w ten sposóbget()?

Ib) jeśli jest jakiś sposób na obejście tego problemu, biorąc pod uwagę mój problem, który przedstawiam poniżej;

Moim problemem jest to, że mam wiele obiektów, utworzonych (za pomocą przykładu zabawki) w pętli, coś takiego:assign( paste( "Object" , i , sep = "." ) , rnorm(1000 , i) ), gdziei to wektor, powiedzmyi <- 1:1000 a następnie chciałbym móc przypisać nazwy (na przykład z innego wektora) do każdego obiektu w pętli, alenames( get( paste( "Object" , i , sep = "." ) ) <- someNewName nie działa jak w powyższym przykładzie.

Aleget( paste( "Object" , i , sep = "." ) ) zwraca nazwy (lubNULL) tych obiektów.

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion