【发布时间】:2020-11-12 14:50:45
【问题描述】:
我正在尝试使用名为 waldo (see at the tidyverse blog too) 的新 R 包,该包旨在比较数据对象以发现差异。 waldo::compare() 函数返回一个对象,根据文档:
具有“waldo_compare”类的字符向量
此功能的主要目的是在控制台中使用,利用着色功能突出显示数据对象之间不相等的突出值。然而,虽然只是在控制台中检查很有用,但我确实想获取这些值并对它们采取行动(将它们从数据中过滤掉,等等)。因此,我想以编程方式提取突出的价值。我不知道怎么做。
示例
- 生成长度为 10 的向量:
set.seed(2020)
vec_a <- sample(0:20, size = 10)
## [1] 3 15 13 0 16 11 10 12 6 18
- 创建一个重复向量,并将附加值 (
4) 添加到第 11 个向量元素中。
vec_b <- vec_a
vec_b[11] <- 4
vec_b <- as.integer(vec_b)
## [1] 3 15 13 0 16 11 10 12 6 18 4
- 使用
waldo::compare()测试两个向量之间的差异
waldo::compare(vec_a, vec_b)
## `old[8:10]`: 12 6 18
## `new[8:11]`: 12 6 18 4
但是现在,我如何提取不同的值?
我可以尝试将waldo::compare() 分配给一个对象:
waldo_diff <- waldo::compare(vec_a, vec_b)
然后呢?当我尝试做waldo_diff[[1]] 我得到:
[1] "`old[8:10]`: \033[90m12\033[39m \033[90m6\033[39m \033[90m18\033[39m \n`new[8:11]`: \033[90m12\033[39m \033[90m6\033[39m \033[90m18\033[39m \033[34m4\033[39m"
对于waldo_diff[[2]],情况更糟:
waldo_diff[3] 中的错误:下标越界
知道如何以编程方式提取出现在“新”向量中但不在“旧”向量中的突出值吗?
【问题讨论】:
标签: r compare comparison