R 从TIBLE中获取值的最简洁的方法

R 从TIBLE中获取值的最简洁的方法,r,unit-testing,tidyverse,R,Unit Testing,Tidyverse,我正在设置测试。我对测试数据进行操作,然后希望确保在TIBLE中的单元格中显示正确的值。我认为有一种更简洁的方法。使用示例band\u仪器 library(tidyverse) test_that("Musicians play instruments", { expect_equal(band_instruments %>% filter(name == "Paul") %>% pull("plays"), "bass")

我正在设置测试。我对测试数据进行操作,然后希望确保在TIBLE中的单元格中显示正确的值。我认为有一种更简洁的方法。使用示例
band\u仪器

library(tidyverse)
test_that("Musicians play instruments", {
      expect_equal(band_instruments %>% filter(name == "Paul") %>% pull("plays"),
                   "bass")
      expect_equal({band_instruments %>% filter(name == "Keith")}$plays,
                   "guitar")
})

这行得通,但太长,太冗长。做这样的测试,最简洁易读的方法是什么?

我觉得这很简洁:

test_that("Musicians play instruments", {
  expect_equal(with(band_instruments, plays[name == "Paul"]), "bass")
  expect_equal(with(band_instruments, plays[name == "Keith"]), "guitar")})
或许是这样:

with(band_instruments, test_that("Musicians play instruments", {
  expect_equal(plays[name == "Paul"], "bass")
  expect_equal(plays[name == "Keith"], "guitar")}))

谢谢艾伦·卡梅隆。我真的很喜欢第二个。我从R开始学习数据科学。我想我现在需要回去学习tidyverse之前的习语。没问题@DavidT。我发现回答关于堆栈溢出的问题是学习这些老把戏的好方法。我已经在R上写了将近十年了,但仅仅在几个月前才学会了