检查列表是否包含R中的数字

时间:2018-02-04 14:14:43

标签: r

我有一个清单:

list(c(1,2,3,4), c(3,2,6,8),c(6,4,3))

我如何能够过滤出每个向量中包含2和3的列表? (它们不一定必须按降序/升序排列)

谢谢!

2 个答案:

答案 0 :(得分:3)

像这样使用int CompressWithPassword(const char * psFileContent, int iFileSize, const char * pcPassword) { zip_source *psZipSource = NULL; zip_int64_t iIndex = 0; int iError = EOK; const char * pcZipOutputPath = "/home/user/Documents/myzip.zip"; // Open zip file. m_psZip = zip_open(pcZipOutputPath, ZIP_CREATE /*Create the archive if it does not exist*/, &iError); // Zip opend ? if(iError != ZIP_ER_OK) { Close(); return iError; } // Generate zip source content. psZipSource = zip_source_buffer(m_psZip, psFileContent, iFileSize, 0); // Valid zip source ? if(psZipSource == NULL) { Close(); iError = -1; return iError; } iIndex = zip_file_add(m_psZip, pcZipOutputPath, psZipSource, ZIP_FL_OVERWRITE); if(iIndex < 0) { Close(); return iIndex; } // Create password int iRetPassword = zip_set_default_password(m_psZip, pcPassword); // password set ? if (iRetPassword == -1) { Close(); return iRetPassword; } // Close zip file. Close(); return iError; }

Filter

,并提供:

L <- list(c(1,2,3,4), c(3,2,6,8), c(6,4,3))
Filter(function(x) all(2:3 %in% x), L)

以上不使用包但如果我们使用gsubfn包中的[[1]] [1] 1 2 3 4 [[2]] [1] 3 2 6 8 ,则可以缩短为以下内容。该公式被视为一个函数的规范,它的主体是右侧,其参数是正文中的自由变量,在本例中只是fn

x

答案 1 :(得分:0)

如果我们使用tidyverse,则keep

中的一个选项为purrr
library(purrr)
keep(lst, ~all(2:3 %in% .x))
#[[1]]
#[1] 1 2 3 4

#[[2]]
#[1] 3 2 6 8