我不喜欢的其中一件事是保存过程。由于我一直在发展,我有很大的工作环境,而当我救我时,经常要保存特定对象。对我来说最烦人的事情之一是保存过程可能非常复杂。对象(一次最多10个)是10到20个各种数据帧(从光栅化图像到中等和大数据帧)的列表,这些数据帧全部以不同的功能以不同的方式使用,其中可以变得非常复杂。为什么我必须做“< - ”?我能设计我的功能绕过吗?
其中之一,我一直无法弄清楚的事情是我的功能期间(如果我执行的东西,将改变数据),我想自动保存更改的对象回目录。而不是我必须做的事情如下。注意这可以通过for循环来处理对象列表,但我想为我输入到该函数的对象执行此操作。
# obtain the name of the object you will be inputing into
# the function in character form
dat.name<-ls(pattern="dat")
#or select it from a list if there are multiple
dat.name<-select.list(ls(pattern="dat"))
# do the function with the object assign it to a new name just in case
# something doesn't work
tmp.dat<-cell.creator(dat)
#next assign the tmp to the real
assign(dat, tmp.dat)
##or## just do the straight up rename if you are brave,
#and i am starting to get pretty brave with some of my functions
dat<-cell.creator(dat)
#paste .rdata on the back to create a file name
file.name<-paste(dat.name, ".rdata")
#then... FINALLY save it
save(dat, file=file.name)
我真正想要做的是内在的命令进入功能,但(除非我不理解这一点)没有什么是存储在输入过程中我的对象命名方式,除非我输入它报价。这不允许我在rgui中使用tab键自动完成功能。 :(
所以,可以说是逸鲍勃 - 抽样<(SEQ(1,1000))
和我的函数对我的对象
bob.sorter<-function(dat){
dat<-sort(dat)
return(dat)}
所以,现在当我输入鲍勃,我想什么,只是继续前进,保存鲍勃 我基本上做
dat<-cell.creator(dat)
我在这里失去了一些东西相当于?
(a)用于一个科学家,再现似乎不为重; (b)该代码实际上没有对矢量进行排序; (c)如果你想在原地修改对象,使用C/C++。你可以在R中用'assign()'创建同样难以理解的(在未来的日子)副作用,但没有人会理解这一点。您可以使用IDE /编辑器片段/映射快捷方式删除“tedium”。 – hrbrmstr
你认为重复性似乎并不重要?如果我正在做一个统计分析,我会去做一个脚本。如果我正在清理数据,准备二进制数据帧,并且/或者在学习环境中工作,那么每次我想要分析时,我都不能创建10000行脚本。 我不认为你了解我尝试使用的数据量。 – MadmanLee
我每天都在处理大量非常多样化的数据(我从数十种每日全网扫描和网络研究互联网200个蜜罐)。黑客脚本是结束超级糟糕分析的好方法。 – hrbrmstr