按组求和大于当前值的值

2024-03-10

我测量了不同地块中树木的断面积。这是一个小例子,有两个地块,每个地块有 4 棵树:

Plot    Tree    BasalArea
1         1         4
1         2         5
1         3         7
1         4         3
2         1         4
2         2         6
2         3         9
2         4         5

在每个图中,我想计算基础面积大于焦点树的树木的基础面积总和。

例如,地块 1 中的树 1 的面积为 4。该地块内有 2 棵树的面积大于树 1:树 2 和树 3 的面积分别为 5 和 7。因此,树 1 的“BA_Larger”为 5 + 7 = 12。

同一地块中的树 2 的底面积 = 5。在地块 1 中,只有一棵树的面积比树 2 的面积大:树 3 的面积为 7。因此,树 2 的“BA_Larger”为 7。

最后,数据框应该是这样的:

Plot    Tree    BasalArea   BA_Larger
1         1        4          12
1         2        5           7
1         3        7           0
1         4        3          16
2         1        4          20
2         2        6           9
2         3        9           0
2         4        5          15

数据集非常大。我尝试计算“BA_Larger”,但没有成功。非常感谢任何帮助。


The baseR 解决方案ave():

within(df, BA_Larger <- ave(BasalArea, Plot, FUN = function(x) sapply(x, function(y) sum(x[x > y]))))

With a tidyverse风格,你也可以使用map_int() or map_dbl() from purrr.

library(dplyr)
library(purrr)

df %>%
  group_by(Plot) %>%
  mutate(BA_Larger = map_int(BasalArea, ~ sum(BasalArea[BasalArea > .]))) %>%
  ungroup()

Output

# # A tibble: 8 x 4
#    Plot  Tree BasalArea BA_Larger
#   <int> <int>     <int>     <int>
# 1     1     1         4        12
# 2     1     2         5         7
# 3     1     3         7         0
# 4     1     4         3        16
# 5     2     1         4        20
# 6     2     2         6         9
# 7     2     3         9         0
# 8     2     4         5        15

Data

df <- structure(list(Plot = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), Tree = c(1L, 
2L, 3L, 4L, 1L, 2L, 3L, 4L), BasalArea = c(4L, 5L, 7L, 3L, 4L, 
6L, 9L, 5L)), class = "data.frame", row.names = c(NA, -8L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按组求和大于当前值的值 的相关文章

  • 在 R 中创建缓冲区和计数点

    I asked 这个问题 https stackoverflow com questions 42498344 create buffer around spatial point data in r and count how many
  • R:将数据帧分为 3 部分

    我试图将数据框分为 3 部分 4352 行 我试过split df 1 3 它完成了工作 但是当我尝试查看 split df 时 它给出了错误 splitdf lt split df f rep len 1 3 nrow df View s
  • R:ggplot2,我可以使构面/条带文本环绕吗?

    我发现这段对于文本换行非常有用的代码here https stackoverflow com questions 2631780 r ggplot2 can i set the plot title to wrap around and s
  • 如何限制 viridis 色标的范围?

    我有两组数据 我想使用带有 viridis 色标的热图来呈现它们 对于第一个数据集 我的值范围从 0 到 1 2 我可以轻松看到我想要看到的差异 然而 我的第二个数据集有一些异常值 导致范围从 0 到 2 现在很难看出 0 和 1 之间有趣
  • 闪亮错误:参数暗示行数不同

    我正在尝试开发一个简单的应用程序 从 Kijiji 网站获取本地分类广告 我用几乎相同的脚本制作了一个类似的应用程序 但我没有收到下面描述的错误 所以我不知道这个脚本出了什么问题 我尝试了我能想到的一切 但无法让它发挥作用 的结构df数据框
  • 如何替换异常值?

    我有以下数据框 d lt data frame Open rnorm 10 5 1 如果我插入异常值 d Open 4 100 d Open 5 100 现在我想用正常值替换这些异常值 我尝试用以前的值替换它 但如果逐个出现异常值 则它不起
  • Rsolnp:在 cbind(temp, funv) 中:结果的行数不是向量长度的倍数(arg 1)

    我是 stackoverflow 的新手 搜索了很多 但找不到我的问题的答案 我正在尝试使用优化包 Rsolnp 来最小化以下问题 尽管求解器为我提供了解决方案 但每次运行代码时我都会收到以下警告消息 警告消息 1 在 cbind temp
  • R 中带有文件名的 For 循环

    我有一个文件列表 例如 nE pT sbj01 e2 2 csv nE pT sbj02 e2 2 csv nE pT sbj04 e2 2 csv nE pT sbj05 e2 2 csv nE pT sbj09 e2 2 csv nE
  • 将循环转换为并行计算的函数

    我正在使用 R 编程语言 我遇到这个问题 我试图找出两个 shapefile 之间的成对交集 即第一个 shapefile 中的每个多边形与第二个 shapefile 中的所有多边形相交的百分比 我想我找到了解决这个问题的基本方法 Load
  • R中添加水印

    我在用magickR中的库 我想在一些图片上添加水印 I used image annotate功能如下 img lt image read C Users Maydin Desktop manzara png image annotate
  • 如何在R中计算文本中的句子数?

    我使用 R 将文本读入readChar 功能 我的目的是测试文本句子中字母 a 出现次数与字母 b 出现次数一样多的假设 我最近发现了 stringr 包 它帮助我对文本做很多有用的事情 例如计算字符数以及整个文本中每个字母出现的总数 现在
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • LDA with topicmodels,如何查看不同文档属于哪些主题?

    我正在使用 topicmodels 包中的 LDA 我已经在大约 30 000 个文档上运行它 获取了 30 个主题 并获得了主题的前 10 个单词 它们看起来非常好 但我想看看哪些文档属于哪个主题的概率最高 我该怎么做 myCorpus
  • kableExtra 中的 row_spec() 函数不会在 html 输出中创建水平线

    我想在 kableextra 表中的某一行下方添加一条水平线 row spec 函数的参数 hline after 应该在行下方添加水平线 row spec 文档 https www rdocumentation org packages
  • 如何在for循环中引用变量?

    我正在循环访问不同的 data tables 和 data table 中的变量 但我在引用内部变量时遇到问题for loop dt1 lt data table a1 c 1 2 3 a2 c 4 5 2 dt2 lt data tabl
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • 如何用外部图像填充地图边界?

    我正在创建一张带有州边界的巴西地图 这可以直接使用ggplot2 and geom sf 然而 这一次 我不想用数据填充每个状态的颜色 而是想用外部图像 png 填充每个状态的边界 类似于this https online olivet e
  • 使用 pracma::findpeaks 识别持续峰值

    我的语法有问题peakpat内的选项findpeaks内的函数pramcaR 包 v 2 1 1 我使用的是 R 3 4 3 x64 Windows 我希望该函数能够识别可能有两个重复值的峰值 并且我相信该选项peakpat这就是我能做到的

随机推荐

  • 如果我需要自定义 getter/setter,我可以省略字段创建吗?

    我可以写出如此漂亮简单的代码 public int Delta get private set 现在我只想添加一个电话OnPropertyChanged Delta 这是我知道如何做到这一点的唯一方法 public int Delta ge
  • 并排绘制 gList

    我有 2 个 gList 对象 网格 当我这样做时 它们可以很好地绘制 grid draw plot1 grid draw plot2 但我希望这些在 pdf 中并排显示 就像是 pdf test pdf par mfrow c 1 2 p
  • 如何更改列表视图的文本大小

    我正在使用 List Activity 从 SQLITE 检索数据 但我无法设置列表视图的字体大小 请帮我 public class CartList extends ListActivity private ArrayList
  • PDF Box 由于其中包含 JBIG2 图像而生成空白图像

    首先让我向您介绍一下我的项目 我有一个 pdf 文件 需要将其转换为图像 一页一张图像 PDFBoxAPI 并将所有这些图像写入新的 pdf 中PDFBoxAPI 本身 基本上 将 pdf 转换为 pdf 我们称之为 PDF 转码 对于某些
  • Qt QImage 到 QPixmap 转换丢失 UI 的颜色信息

    我正在尝试更新主 Qt UI 中 QLabel 上的 QPixmap 调用以下插槽来使用 newImage 变量 QImage 执行此操作 因为它来自不同的线程 QImage 使用 ConvertFromImage 转换为 someImag
  • 如何将不带空格的文本拆分为单词列表

    Input tableapplechairtablecupboard 很多话 将此类文本拆分为单词列表并获得的有效算法是什么 Output table apple chair table cupboard cup board 首先想到的是遍
  • 如何使用 cleanup 属性初始化变量?

    有没有办法用以下方式初始化变量cleanup编译器属性 或者我必须在声明变量后设置值吗 我试过把cleanup前面的属性 malloc 10 就像下面和后面的例子一样 malloc 10 但都不能编译 include
  • mysql通过有来计数组

    我有这张表 Movies ID Genre 一部电影可以有多种类型 因此 ID 并不特定于某个类型 而是多对多的关系 我想要一个查询来查找恰好有 4 种类型的电影总数 我当前的查询是 SELECT COUNT FROM Movies GRO
  • 使用 Plugman 创建 Ionic 插件

    我是 Ionic 和 Cordova 的新手 我需要使用 Cordova 创建一个 ionic 插件并将其集成到示例 ionic 应用程序中 我遵循的步骤是 使用plugman创建一个简单的离子插件 plugman create name
  • WPF - 如何在父级鼠标悬停时更改子级样式

    我有一个StackPanel 1 与另一个StackPanel 2 里面 SP 2 应隐藏 不透明度 0 直到 SP 1 悬停为止 鼠标悬停应将 SP2 的样式更改为不透明度 100 我尝试在 StackPanel 资源中定义样式 然后使用
  • 标签替换换行符[重复]

    这个问题在这里已经有答案了 我有一个带有文本区域的表单 我想将输入中的换行符更改为段落 使用 p 标签 我正在使用爆炸和内爆来替换 n with p p 但是如果你连续有两个换行符 你最终会得到 p p p p 我试图使用 foreach
  • Asp.net MVC 中的 TimeSpan 和“24:00”解析错误

    我的 Web 应用程序中有一个模式对话框 用户可以在其中输入 00 00 到 24 00 之间的时间范围 范围滑块用于选择该范围 一切都按预期工作 除了每当用户将正确的范围句柄设置为具有值 24 00 时 默认模型绑定器无法解析此值Time
  • 对于不成功的 Try() 方法,输出值应该设置为多少?

    我正在实现 TryParse string s Out object result 方法 如果解析失败 我不想触及 out 参数 因此之前的任何结果都将保持不变 但 VS2k8 不让我这么做 无论如何 我都必须设置 out 对象的值 我应该
  • Spring Boot - Websockets - 如何查看订阅者

    我正在开发一个 websocket 应用程序 我试图让一个 websocket 提供信息 然后输出给端点的订阅者 我已经弄清楚了 但我想知道是否有办法查看订阅了哪些订阅者以及订阅了什么路径 这是我正在处理的代码示例 Autowired pr
  • 图灵机的 C 语言实现

    我正在为形式语言理论课程研究图灵机 教授建议运行以下内容算法 http code zhoubot com archives 52详细查看 TM 背后的逻辑 但不起作用 当尝试编译时告诉我以下错误 C Documents and Settin
  • 在 ASP MVC 3 中创建可下载文本文件时无法访问关闭的流

    我试图提示可下载的文本文件 txt 但出现此错误 无法访问关闭的流 我在这里查看了类似的问题 无法访问关闭的流 https stackoverflow com questions 2331675 cannot access closed s
  • Valgrind 和 CUDA:报告的泄漏是真的吗?

    我的应用程序中有一个非常简单的 CUDA 组件 Valgrind 报告了大量泄漏和仍然可达的情况 所有这些都与 cudaMalloc 调用有关 这些泄露是真的吗 我打电话cudaFree对于每一个cudaMalloc 这是 valgrind
  • 需要截断 Razor HTML DisplayFor Helper

    我试图截断一个有时非常大或有时在数据库中为空的文本字段 即 Html DisplayFor modelItem gt item MainBiography 并在末尾替换为三个点 我尝试过 substring 函数 但不断出现错误 任何指点
  • ActiveDirectoryMembershipProvider 与 Azure Active Directory

    我意识到还有其他 首选 方法可以使用 Azure Active Directory 实施身份验证 但是否可以使用标准ActiveDirectory会员提供者 with Azure 活动目录 for an Azure 网站 不能 无法将 Ac
  • 按组求和大于当前值的值

    我测量了不同地块中树木的断面积 这是一个小例子 有两个地块 每个地块有 4 棵树 Plot Tree BasalArea 1 1 4 1 2 5 1 3 7 1 4 3 2 1 4 2 2 6 2 3 9 2 4 5 在每个图中 我想计算基