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