小编Mah*_*ero的帖子

Data.table:将功能应用于组,参考每个组中的设置值。将结果列传递给函数

我有长格式的数据,这些数据将按地理位置分组。我想计算每个感兴趣的变量与所有其他感兴趣的变量之间的差异。我无法在单个数据表语句中弄清楚如何有效地执行此操作,因此解决方法也随之引入了一些新错误(我修复了具有更多解决方法的错误,但在这里也将提供帮助!)。

然后,我想将结果列传递给ggplot函数,但是无法使用推荐的方法来工作,因此我使用了不推荐使用的方法。

library(data.table)
library(ggplot2)

set.seed(1)
results <- data.table(geography = rep(1:4, each = 4),
                      variable = rep(c("alpha", "bravo", "charlie", "delta"), 4),
                      statistic = rnorm(16) )

> results[c(1:4,13:16)]
   geography variable   statistic
1:         1    alpha -0.62645381
2:         1    bravo  0.18364332
3:         1  charlie -0.83562861
4:         1    delta  1.59528080
5:         4    alpha -0.62124058
6:         4    bravo -2.21469989
7:         4  charlie  1.12493092
8:         4    delta -0.04493361

base_variable <- "alpha"
Run Code Online (Sandbox Code Playgroud)

从这一点出发,理想情况下,我希望编写一个简单的代码,按地理位置分组,然后以相同的格式返回此表,但每个组中每个变量的统计信息为(base_variable-变量)。

我不知道如何执行此操作,因此下面是我的解决方法,我们欢迎您提出有关更好方法的建议。

# Convert to a wide table so we can do the subtraction by rows …
Run Code Online (Sandbox Code Playgroud)

grouping r ggplot2 data.table

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

标签 统计

data.table ×1

ggplot2 ×1

grouping ×1

r ×1