3

次のようなリストがあります。

what_i_have <- list(A = LETTERS[1:6], B = LETTERS[1:6], C = LETTERS[2:7])

そのリスト要素の名前に従って各ベクトルから要素を削除したいので、次のようになります。

what_i_want <- list(A = LETTERS[2:6], B = LETTERS[c(1, 3:6)], C = LETTERS[c(2,4:7)])

i_have_thisに到達するには、どのような操作を行うことができi_want_thisますか?

を使用して同じ構造の論理ベクトルのリストを取得することまではできましたpurrr::map2(what_i_have, names(what_i_have), function(x, y) x == y)が、サブセット化しようとすると私の脳は過負荷になりwhat_i_haveます。

私は何が欠けていますか?手伝ってくれますか?

tidyverse (またはベース R) ソリューションのボーナス ポイント。

library(testthat)
test_that("Turn what I have into what I want", {
  expect_equal(what_i_have, what_i_want)
})

ご協力ありがとうございました。

4

2 に答える 2

2

単に、

Map(setdiff, have, names(have))
于 2017-01-12T15:46:31.240 に答える