所以我有一些激光雷达数据,我想计算一些指标(我会在评论中附加一个指向数据的链接).
我也有地面图,我已经提取了激光雷达点周围,所以我每个情节有几百点(19个地块).每个点都有X,Y,Z,地面以上的高度以及相关的图.
我需要在绘图级别计算一堆指标,所以我创建plotsgrouped了split(plotpts, plotpts$AssocPlot).
所以现在我有一个数据框,每个绘图都有一个"页面",所以我可以通过"绘图页面"计算我的所有指标.这对于个别情节来说只是花花公子,但我想自动化它.(是的,我知道只有19个图,但这是它的原理,但是它!! - P)
到目前为止,我有一个for循环计算度量并将结果放入一个名为的数据框中Results.我将这些组的名称拉到了一个名单中groups.
for(i in 1:length(groups)){
Results$Plot[i] <- groups[i]
Results$Mean[i] <- mean(plotsgrouped$PLT01$Z)
Results$Std.Dev.[i] <- sd(plotsgrouped$PLT01$Z)
Results$Max[i] <- max(plotsgrouped$PLT01$Z)
Results$75%Avg.[i] <- mean(plotsgrouped$PLT01$Z[plotsgrouped$PLT01$Z <= quantile(plotsgrouped$PLT01$Z, .75)])
Results$50%Avg.[i] <- mean(plotsgrouped$PLT01$Z[plotsgrouped$PLT01$Z <= quantile(plotsgrouped$PLT01$Z, .50)])
...
and so on.
Run Code Online (Sandbox Code Playgroud)
当我尝试做类似的事情时,问题就出现了:
Results$mean[i] <- mean(paste("plotsgrouped", groups[i],"Z", sep="$")).mean()不识别paste作为向量的引用plotsgrouped$PLT27$Z,而是失败.我推断这是因为它看到引号并且认为,"哦,你只是一些文字,我无法理解你的意思." 或者那种效果.
Btw,groups是19个绘图名称的列表:PLT01-PLT27(有时是非连续的)和FTWR,所以我不能简单地为名称的数字部分添加序列.
任何人都有更简单的方法来迭代我的测试图并获得任意指标?
我觉得我拥有所有正确的作品,但只是不知道他们如何一起去给我我想要的东西.
此外,如果有人能够提出更好的问题标题,