小编ela*_*rry的帖子

如何从R中的netCDF文件中提取变量名?

我在R中编写一个函数,从netCDF文件中提取一些空气质量建模数据.我安装了包"ncdf".

为了让其他用户或我自己选择从netCDF文件中提取哪些变量,我想提取文件中所有变量的名称,这样我就可以在一个简单的列表中而不仅仅是print.ncdf()文件中提供很多信息.这有什么办法吗?

我尝试了ncdf对象unlist()var字段,但它似乎也返回了内容...

我google搜索堆栈*溢出*但似乎没有找到答案,所以非常感谢你的帮助.

提前谢谢了.

r variable-names netcdf

11
推荐指数
2
解决办法
7787
查看次数

如何使用"重复发生"列重新整形数据框?

我是R的数据分析新手.我最近得到了一个预先格式化的环境观测模型数据集,其示例子集如下所示:

date                   site      obs    mod      site           obs    mod
2000-09-01 00:00:00    campus    NA     61.63    city centre    66     56.69
2000-09-01 01:00:00    campus    52     62.55    city centre    NA     54.75
2000-09-01 02:00:00    campus    52     63.52    city centre    56     54.65
Run Code Online (Sandbox Code Playgroud)

基本上,数据包括每小时观察到的时间序列和在"重复列"中不同位置的污染物模型浓度,即站点 - 天然 - 模型(在示例中,我仅显示了总共75个站点中的2个).我将这个"宽"数据集作为数据框读取,并希望将其重塑为"较窄"格式,如下所示:

date                   site           obs    mod
2000-09-01 00:00:00    campus         NA     61.63
2000-09-01 01:00:00    campus         52     62.55
2000-09-01 02:00:00    campus         52     63.52
2000-09-01 00:00:00    city centre    66     56.69
2000-09-01 01:00:00    city centre    NA     54.75
2000-09-01 02:00:00    city centre    56     54.65
Run Code Online (Sandbox Code Playgroud)

我相信我应该使用"reshape2"包来做到这一点.首先,我尝试融化然后dcast数据集:

test.melt <- …
Run Code Online (Sandbox Code Playgroud)

r reshape melt reshape2

6
推荐指数
2
解决办法
3536
查看次数

在r plot文本中指定小数位?

我试图格式化在基本图形系统中创建的回归曲线的标签.基本上,此标签从变量中提取斜率,截距和r平方值.一个例子如下:

plot(rnorm(10), type = "n", xlim = c(0, 100), ylim = c(0, 100))
text(x = 0, y = 100, adj = c(0, NA), bquote(paste(y == .(a) * x + .(b), ", R"^2 == .(r2))), cex = 0.7)
Run Code Online (Sandbox Code Playgroud)

但是,这会产生一个看起来不太聪明的标签:

y = 1.159019x+-1.537708, R<sup>2</sup>=0.7924927
Run Code Online (Sandbox Code Playgroud)

我想要的是将数字四舍五入到小数点后第二位,即

y = 1.16x-1.54, R<sup>2</sup>=0.79
Run Code Online (Sandbox Code Playgroud)

我已经在两个帮助文档中查找了text(),bquote()但没有找到太多有用的信息.

我也曾尝试来包装.(a),.(b).(r2)format()与参数nsmall = 2,但没有奏效.

有人可以帮我这个吗?提前谢谢了!

PS.我认为我的问题中有一个隐藏的任务.在上面的例子中,b是否定的.我知道我可能会"+"在我的表达式中忽略运算符,只是使用负号b来加入我的等式.但是,如果我不知道b事先的迹象怎么办?是否有一种巧妙的方法来形成标签,而不是用a来检查它,if()然后写两个非常不同的版本text()?再次感谢!

plot label r decimalformat

2
推荐指数
1
解决办法
7078
查看次数

标签 统计

r ×3

decimalformat ×1

label ×1

melt ×1

netcdf ×1

plot ×1

reshape ×1

reshape2 ×1

variable-names ×1