小编Ale*_*man的帖子

累积和以条件为条件

我想计算应用于另一列的一组间隔[n, +?)(即? n)的数据帧列的条件和.在下面的示例数据中,间隔应用于列a,列b中的值有条件地求和.对于[0, +?)所有列a值,所有值的总和也是? 0如此b_sum.对于[3, +?)只有一条记录是? 3如此b_sum为500.

输入数据

  a    b          
1.1  100          
2.3  150          
0.1   20          
0.5   80          
3.3  500          
1.6  200
1.1  180
Run Code Online (Sandbox Code Playgroud)

期望的结果

n  b_sum
0   1230
1   1130
2    650
3    500
4      0
Run Code Online (Sandbox Code Playgroud)

我确信使用for循环这很容易; 然而; 我想避免这种方法,并使用矢量化的基础Rdplyr方法.

r dplyr

4
推荐指数
1
解决办法
684
查看次数

围绕栅格单元绘制轮廓

使用 ggplot2 我想绘制一个多边形(凸包?),它尊重栅格图的单元格边界(使用geom_raster)。我可以使用凸包方法,但它们会通过 xy 坐标而不是围绕光栅图的单元格(对不起,我的术语受到了我的无知的影响)。例如,给定以下具有分类属性的 xy 坐标数据d

df <- data.frame(x = c(295, 300, 305, 310, 295, 300, 305, 310),
                 y = c(310, 310, 310, 310, 315, 315, 315, 315),
                 d = c(2, 2, 2, 1, 2, 1, 1, 1))
Run Code Online (Sandbox Code Playgroud)

我可以使用 ggplot2geom_raster将属性绘制为填充:

ggplot(df, aes(x, y)) +
  geom_raster(aes(fill = d)) +
  coord_fixed()
Run Code Online (Sandbox Code Playgroud)

给予:

在此处输入图片说明

但我想要的是由d. 像这样的东西:

在此处输入图片说明

我可以使用基本 R 和 ggplot2 来做到这一点,还是有办法使用该raster包或其他一些网格/栅格/GIS 包?我更喜欢保持它尽可能简单。

r ggplot2

4
推荐指数
1
解决办法
2584
查看次数

标签 统计

r ×2

dplyr ×1

ggplot2 ×1