我有一个清单:
list(c(1,2,3,4), c(3,2,6,8),c(6,4,3))
我如何能够过滤出每个向量中包含2和3的列表? (它们不一定必须按降序/升序排列)
谢谢!
答案 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