Comment enregistrer le fichier de données dans .RData?
Je veux enregistrer des données dans une .RData
fichier.
Par exemple, j'aimerais enregistrer dans 1.RData
avec deux fichiers csv et quelques informations.
Ici, j'ai deux fichiers csv
1) file_1.csv contains object city[[1]]
2) file_2.csv contains object city[[2]]
et en plus enregistrer d'autres valeurs, des pays et de la population comme suit.
Donc, je suppose que j'ai besoin de rendre les objets 'ville', à partir de deux fichiers csv tout d'abord.
La structure de 1.RData peut ressemble à ceci:
> data = load("1.RData")
> data
[1] "city" "country" "population"
> city
[[1]]
NEW YORK 1.1
SAN FRANCISCO 3.1
[[2]]
TEXAS 1.3
SEATTLE 1.4
> class(city)
[1] "list"
> country
[1] "east" "west" "north"
> class(country)
[1] "character"
> population
[1] 10 11 13 14
> class(population)
[1] "integer"
file_1.csv
et file_2.csv
avez des tas de lignes et de colonnes.
Comment puis-je créer ce type de RData avec les fichiers csv et les valeurs?
Vous devez vous connecter pour publier un commentaire.
Sinon, lorsque vous souhaitez enregistrer que des objets R, je recommande d'utiliser
saveRDS
.Vous pouvez enregistrer des objets R à l'aide de
saveRDS
, puis de les charger dans R avec un nouveau nom de variable à l'aide dereadRDS
.Exemple:
Mais lorsque vous souhaitez enregistrer un grand nombre de tous vos objets dans votre espace de travail, utilisez Manetheran de réponse.
saveRDS
même si c'est de la base de R... j'ai toujours été à l'aide de Manetheran de la solution.save
/load
.saveRDS
mieux? Avecsave/load
vous utilisezsave(object, file)
etnewObject <- load(file)
. Avec RDS vous utilisezsaveRDS(object, file)
etnewObject <- readRDS(file)
. Ils semblent similaires à moi, mais pour les quelques séquences de touches à l'aide desaveRDS
etreadRDS
. Je suppose que je suis en manque de quelque chose.readRDS
vous donne. Rload
est activement à la promotion d'une mauvaise pratique ici.load
de compensation de l'environnement. J'ai créé un SSCC exemple. Le code est maladroit dans le commentaire ici, mais ici, il va:test <- cbind(1:10, 11:20); save(test, file = "example.Rdata"); remove(list = ls()); load("example.Rdata"); test1 <- 1:10; test2 <- 11:20; ls(); ls(envir=.GlobalEnv); load("example.Rdata"); ls(); ls(envir=.GlobalEnv); #Load does not remove objects from environment. ie test1 and test2 are still there
.test
avecsave(test, file = "example.Rdata")
. Puis, plus tard, vous définisseztest
que quelque chose d'autre (par exemple,test <- c(1:100)
). Ce qui se passe lorsque vous neload("example.Rdata")
? Il remplacera votre nouvellement définitest
variable. Un autre scénario: que faire si vous avez besoin des données que vous avez enregistré dansexample.rdata
, mais que vous voulez garder le nouveautest
variable. Pouvez-vous facilement chargerexample.Rdata
dans une nouvelle variable, par exempletest3
avecload
?save
est de sauver mon environnement actuel dans R, mais pour économiser de l'individu objets R, je trouvesaveRDS
etreadRDS
sont beaucoup mieux.Il y a trois façons de sauvegarder les objets de votre R session:
De la sauvegarde de tous les objets dans votre R session:
La
enregistrer.image()
fonction de sauvegarde de tous les objets actuellement dans votre R session:Ces objets peuvent ensuite être chargé dans un nouveau R de session à l'aide de la
load()
fonction:Sauver quelques objets dans votre R session:
Si vous souhaitez enregistrer certains, mais pas tous les objets, vous pouvez utiliser le
save()
fonction:Encore une fois, ceux-ci peuvent être rechargées dans un autre R de session à l'aide de la
load()
fonction:De l'enregistrement d'un objet unique
Si vous souhaitez enregistrer un seul objet, vous pouvez utiliser le
saveRDS()
fonction:Vous pouvez charger dans votre R session à l'aide de la
readRDS()
fonction, mais vous devrez affecter le résultat dans la variable que l'on veut:Mais cela signifie également que vous pouvez donner à ces objets nouveaux noms de variables si nécessaire (c'est à dire si les variables existent déjà dans votre nouveau R de la session, mais de contenir d'autres objets):
load()
instruction ferait-il mieux de l'OMI.Il suffit d'ajouter une fonction supplémentaire si vous avez besoin. Vous pouvez inclure une variable dans l'emplacement nommé, par exemple une date identificateur
Ce est que vous pouvez toujours garder un contrôle de quand il a été exécuté