我已经浏览了R中的等高线图页面(包括stackoverflow上的许多提示)但没有成功.这是我的轮廓数据,包括添加卢旺达地图(数据包括经度,纬度和降雨的14个值为x,y和z):
Lon Lat Rain
28.92 -2.47 83.4
29.02 -2.68 144
29.25 -1.67 134.7
29.42 -2.07 174.9
29.55 -1.58 151.5
29.57 -2.48 224.1
29.6 -1.5 254.3
29.72 -2.18 173.9
30.03 -1.95 154.8
30.05 -1.6 152.2
30.13 -1.97 126.2
30.33 -1.3 98.5
30.45 -1.81 145.5
30.5 -2.15 151.3
Run Code Online (Sandbox Code Playgroud)
这是我从stackoverflow尝试的代码:
datr <- read.table("Apr0130precip.txt",header=TRUE,sep=",")
x <- datr$x
y <- datr$y
z <- datr$z
require(akima)
fld <- interp(x,y,z)
par(mar=c(5,5,1,1))
filled.contour(fld)
Run Code Online (Sandbox Code Playgroud)
插值fails.help将不胜感激.
我发现自己处于需要更新之前使用的Rdata文件中的一个或两个数据对象的位置save.如果我不小心加载文件,我可能会忘记在文件中重新保存一些对象.作为一个例子,我正在处理一个存储有一些对象的包sysdata.rda(用于内部使用的查找表,我不想导出),只想担心更新单个对象.
如果有一种标准的方法可以做到这一点,我还没有成功,所以创建了我自己的功能.
resave <- function (..., list = character(), file = stop("'file' must be specified")) {
# create a staging environment to load the existing R objects
stage <- new.env()
load(file, envir=stage)
# get the list of objects to be "resaved"
names <- as.character(substitute(list(...)))[-1L]
list <- c(list, names)
# copy the objects to the staging environment
lapply(list, function(obj) assign(obj, get(obj), stage))
# save everything in the staging environment
save(list=ls(stage, all.names=TRUE), file=file)
}
Run Code Online (Sandbox Code Playgroud)
虽然看起来有点矫枉过正.有没有更好/更简单的方法来做到这一点?
顺便说一下,我是否正确地假设在函数调用之后在函数范围内创建的新环境被销毁?