2016-07-14 32 views
3

我是相当新于R ,并会尽我所能,让自己的理解。 假设我有一个包含多个对象的现有rdata文件。 现在我想添加一个数据框到它,我该怎么做? 我试过以下内容:数据帧添加到现有的RDATA文件

write.data.loc <- 'users/Jim/Objects' 

rdataPath <- 'users/Jim/Objects.Rda' 

myFile<- read.csv("myFile.csv") 

loadObjects <- load(rdataPath) 

save(loadObjects,myFile,file=paste(write.data.loc,".Rda",sep="")) 

但是这似乎不起作用?

+0

你看到了什么错误? – xxfelixxx

+0

当我访问文件的cntents我得到 装入对象,MYFILE 但装入对象不是内容 – radhika

+0

尝试改变'装入对象< - 负载(rdataPath)''到负载(rdataPath)'。我想你可能会覆盖'loadObjects'。 – xxfelixxx

回答

1

我不能确定你的实际使用情况,但如果你必须“追加”新对象的rda文件,这里是一个方法。这种试图通过load荷兰国际集团一切从rda文件中的对象的要高明到一个新的environment(有很多教程和指南,讨论环境的使用和相关性,哈德利的"Advanced R"是一个做了很好的工作,我认为)。

这第一步加载的所有对象到一个新的(空)的环境。这是非常有用的使用,否则空环境,使我们可以得到相当容易使用ls从它的对象的所有

e <- new.env(parent = emptyenv()) 
load("path/to/.rda", envir = e) 

要添加的对象应该加载到环境中的变量中。需要注意的是美元符号的访问看起来一样list s,这使得两者(1)容易混淆两者,和(2)容易理解命名索引,正在$提供。

e$myFile <- read.csv("yourFile.csv") 

这最后一块,重新保存rda文件,是一种间接方法。 ls(envir = e)返回环境内所有对象的变量名称。这很好,因为save可以处理对象或其名称。

do.call("save", c(ls(envir = e), list(envir = e, file = "newsave.rda"))) 

意识到,这不是技术上附加的data.frame到rda文件,它已经结束了,写rda文件,一个新的,恰好包含所有以前的对象和新的数据。帧。

+0

radhika,你似乎有一个[问及 - 运行的习惯](https://stackoverflow.com/users/5322608/radhika)。 StackOverflow的礼节包括接受关闭的答案,以及“奖励”那些花时间试图帮助你的人。如果答案不充分,解释“为什么”它不起作用是有道理的,否则你不可能在这个问题上得到更多的帮助。请接受所提供的答案,评论为什么它不够,或者在您的问题中添加评论以解释“没有用,我不再需要它”。 – r2evans

相关问题