Vous êtes sur la page 1sur 3

s'inscrire

Dépassement de pile s'identifier

Des questions Emplois Mots clés Utilisateurs Badges Demander

0 Renommer les variables globales dans R


r

J'essaye de renommer les variables globales avec une boucle for.

Je n'ai pas d'exemple reproductible car cette question concerne quelque chose de très large.

Le premier problème est que je traite de si grands ensembles de données que je dois utiliser
data.tables. Je veux renommer (avec une boucle for) tous les data.tables de mon environnement
global.

Le premier problème est de savoir comment renommer les variables d'environnement globales.

Deuxièmement, comment renommer les variables globales d'un certain type de classe?

Attention, je veux faire cela dans une boucle for afin qu'il puisse renommer des listes de longueur
variable.

partager améliorer cette question suivre

Pablo Boswell 655 a demandé


● 1 ● 7 ● 23 31 janv.15 à 5:51

Yu Hao édité
108k ● 23 ● 198 ● 252 31 janv.15 à 6:34

Si vous avez besoin de renommer des variables globales, il semble que votre code puisse avoir d'autres
problèmes de conception. Pourquoi avez-vous besoin de faire cela? -  MrFlick 31 janvier 15 à 7:49

ajouter un commentaire

1 réponse commandé par votes

R n'a pas le concept de renommer, mais vous pouvez lier un objet à un nouveau nom et
0
supprimer l'ancien nom. Étant donné que les objets data.table utilisent des références,
cela n'entraînera pas la copie des données sous-jacentes, comme le feraient d'autres
affectations.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique en


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique en
matière de cookies
# get t , notre
he na politique
mes ofdeth
confidentialité
e variables et nos
in tconditions
he globa d'utilisation
l environ . ment
globalVariables <- ls(envir=.GlobalEnv)

for(.name in globalVariables){
x <- get(.name,envir=.GlobalEnv)
if(inherits(x,'data.table')){
# obviously you want a better newName than 'foo'
newName <- 'foo'
# bind the value x to the new name in the global environment
assign(newName,x,envir=.GlobalEnv)
# delete the binding to the old name in the global environment
rm(list=.name,envir=.GlobalEnv)
}
}

partager améliorer cette réponse suivre

Jthorpe 7 834 répondu


● 2 ● 32 ● 44 31 janv.15 à 7:21

édité
31 janv.15 à 7:29

Ta Réponse

Corps

Ajouter une image

S'identifier

OU

Nom

Email
En cliquant sur «Publier votre réponse», vous acceptez nos conditions d'utilisation , notre politique de confidentialité et notre politique
de cookies

Publiez votre réponse

meta chat tour aide blog politique de confidentialité légal contactez-nous site complet
Contributions des utilisateurs 2020 de Stack Exchange, Inc. sous CC BY-SA

Vous aimerez peut-être aussi