【发布时间】:2021-10-23 18:37:08
【问题描述】:
我有一个 R 数据框,如下例所示。我希望计算观察值/行(所有组合)之间列值的差异。
my_df <- tibble(a=runif(5), b=runif(5), c=runif(5))
> my_df
# A tibble: 5 x 3
a b c
<dbl> <dbl> <dbl>
1 0.0513 0.267 0.846
2 0.614 0.683 0.937
3 0.230 0.700 0.0651
4 0.671 0.110 0.901
5 0.424 0.520 0.817
我已经尝试了下面的代码,它只给了我后续行之间的区别;我想要所有组合:row2 - row1;第 3 行 - 第 1 行;第4行-第1行,第5行-第1行,第3行-第2行,第4行-第2行,依此类推……
另外,我写的代码对我来说似乎不是最好的(!),虽然它输出了我希望的结果,但不是所有可能的组合!
my_diff <- as.data.frame(diff(as.matrix(my_df)))
> my_diff
a b c
1 0.5623574 0.41522579 0.09165630
2 -0.3837289 0.01755953 -0.87209740
3 0.4407068 -0.58982681 0.83540813
4 -0.2463205 0.40943495 -0.08358985
如果有人可以提供帮助以使用 R 解决我的问题,我将不胜感激,如果可能的话,使用 tidy verse 选项。
谢谢。
【问题讨论】:
-
@Skaqqs,谢谢,但不是真的。我正在尝试计算行而不是列之间的差异。
-
好的,很抱歉。我一定不明白你想要的输出。您能否根据示例数据分享您的期望?谢谢!
标签: r dataframe tidyr difference