Bir gün burada bir gönderi, bir işlev içinde global ortamda birden fazla nesneye değer atamanın nasıl yapıldığını merak ediyor. Bu benim lapply
(assign
<<-
daha güvenli olabilir, ancak aslında hiç kullanmadım ve aşina değilim) kullanma girişimi.Birden çok nesneyi .GlobalEnv öğesine bir işlev içinden atayın
#fake data set
df <- data.frame(
x.2=rnorm(25),
y.2=rnorm(25),
g=rep(factor(LETTERS[1:5]), 5)
)
#split it into a list of data frames
LIST <- split(df, df$g)
#pre-allot 5 objects in R with class data.frame()
V <- W <- X <- Y <- Z <- data.frame()
#attempt to assign the data frames in the LIST to the objects just created
lapply(seq_along(LIST), function(x) c(V, W, X, Y, Z)[x] <<- LIST[[x]])
herhangi kısaltmak için çekinmeyin/bu işi yapmak (veya daha iyisi/hızlı çalışmasına) benim tüm kod parçaları.
Bu soru veya: Senin durumunda
:
Yani, örneğin, küresel ortamda
NAME
adında bir nesneyeX
değerini atamak, sen yapardın Herhangi bir cevap büyük bir "Çocuk, evde bunu yapma!" feragat. Bildiğiniz gibi, fonksiyonlar içindeki global görevler, felaket için bir reçete ya da “yanardağın yaşamı”, Richard Burns'den alıntı yapmaktır (http://www.burns-stat.com/pages/Tutor/R_inferno.pdf) – flodel@flodel Programcı değilim, bu yüzden atamakla ilgili sorunun ne olduğunu kısaca anlatabilir misiniz? –
Alıntı yaptığınız bölümü okudum. Bu kişisel tüketim için değil, kişisel kod için akıllı görünüyor. Bu etkiyi elde etmenin bir yolunu görebiliyor musunuz? –