0

我有 3 个与compareDF CRAN 包中的compare_df()函数有关的问题。

我有两个结构相同但内容不同的数据框(this_week 和 last_week):

this_week
  Week   A   B   C
1    1   0   0   0
2    2   0   1   0
3    3   0   1   0
4    4   2   1   0
5    5   2   0   0       

last_week
  Week   A   B   C
1    1   0   0   0
2    2   0   0   0
3    3   0   0   1
4    4   3   0   0
5    5   0   0   0

我正在使用 compare_df(this_week, last_week, group_col = "Week") 来比较这两个数据框。具体来说,我对提供单元级别比较的第二个 compare_df() 函数输出感兴趣。

输出显示从一周到下一周哪些单元格增加了:

weeks_compared <- compare_df(this_week, last_week, group_col = "Week")
weeks_compared

$comparison_df
  Week chng_type   A   B   C
1    2         +   0   1   0
2    2         -   0   0   0
3    3         +   0   1   0
4    3         -   0   0   1
5    4         +   2   1   0
6    4         -   3   0   0
7    5         +   2   0   0
8    5         -   0   0   0

$comparison_table_diff
  Week chng_type   A   B   C
1    =         +   =   +   =
2    =         -   =   -   =
3    =         +   =   +   +
4    =         -   =   -   -
5    =         +   +   +   =
6    =         -   -   -   =
7    =         +   +   =   =
8    =         -   -   =   =

有趣的是,第 5 行和第 6 行并没有提供我期望的比较结果。我希望:
第二个数据帧($comparison_table_diff)的第 5 行第 3 列(“A”)为“-”
第 6 行,第 3 列(“A”)为“+”。
然而,它实际上是相反的方式:

$comparison_df
  Week chng_type A B C
5    4         + 2 1 0
6    4         - 3 0 0

$comparison_table_diff
  Week chng_type A B C
5    =         + + + =
6    =         - - - =

1)有人知道为什么会这样吗?

另外,我不知道如何进一步使用这个输出。我的目标是:
2)更新在 last_week 中增加的旧数据
3)为增加的 last_week 数据添加一个星号(仅在“B”和“C”列中)

除了简单地粘贴这些表之外,我还没有发现任何与实际使用 Stack Overflow 上的 compare_df() 输出相关的内容,这对于我的任务来说是不够的。

我想知道是否有人做过类似的事情和/或可以分享一些关于我如何实现这两个目标的想法。或者,有兴趣知道是否有更好的包可用于此任务/解决方法。当然,如果需要任何进一步的信息,请告诉我。

提前感谢您提供的任何帮助!

4

0 回答 0