Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果搜索词在列表中不可用,则忽略或在行中显示NA-R_R - Fatal编程技术网

如果搜索词在列表中不可用,则忽略或在行中显示NA-R

如果搜索词在列表中不可用,则忽略或在行中显示NA-R,r,R,如果(表搜索)中的任何搜索列表在我输入的列表中不可用,如何打印或显示不可用。在输入中,我有三行,我有三个关键字在这些行中搜索,并告诉我这些行中是否存在关键字。如果当前打印该行,否则打印不可用,如所需输出中所示 我的代码只是打印所有可用的行,但这并没有帮助,因为我需要知道单词丢失的位置 Table_search <- list("Table 14", "Source Data:","VERSION") Table_ma

如果(表搜索)中的任何搜索列表在我输入的列表中不可用,如何打印或显示不可用。在输入中,我有三行,我有三个关键字在这些行中搜索,并告诉我这些行中是否存在关键字。如果当前打印该行,否则打印不可用,如所需输出中所示

我的代码只是打印所有可用的行,但这并没有帮助,因为我需要知道单词丢失的位置

Table_search        <- list("Table 14", "Source Data:","VERSION")
Table_match_list    <- sapply(Table_search, grep, x = tablelist, value = TRUE)
期望输出:

Table 14.1.1.1 (Page 1 of 2)
Source Data: Listing 16.2.1.1.1
NA
@埃文斯

sapply(未列出(表搜索),grepl,x=dat)

实际上,我用这段代码得到了很好的输出,但是我想打印实际的数据,而不是true或false


我认为一个正则表达式就可以做到:

replace(dat,!grepl(粘贴(未列出(表_搜索),collapse=“|”),dat,NA)
#[1]“表14.1.1.1(第1页,共2页)”“源数据:清单16.2.1.1.1”
#[3]NA
使用
sapply(,,grep)
的一个问题是
grep
返回整数索引,如果不匹配,则返回长度为0的向量。对于
sapply
(类不安全函数),这意味着您可能会或可能不会得到
整数
向量作为回报。每个返回值可能是长度0(未找到任何内容)或长度1(已找到某些内容),当
sapply
发现每个返回值的长度不完全相同时,它会返回一个
列表
(因此我在上面的“类不安全”字眼)

当您使用
value=TRUE
:将我上面关于“0或1
logical
”的推理更改为“0或1
character
”,这是同样的问题

因此,我建议
grepl
:它应该始终返回
logical
,指示是否找到

此外,由于您似乎不需要区分找到了哪些模式,只需“至少找到其中一个”,因此我们可以使用单个正则表达式,并使用正则表达式或操作符
|
。这适用于任意长度的
表\u搜索
列表

如果您不知何故需要知道找到了哪些模式,那么您可能需要类似以下内容:

sapply(未列出(表搜索),grepl,x=dat)
#表14来源数据:版本
#[1,]对错错错
#[2,]假-真-假
#[3,]错
然后找出如何处理不同的列(每行表示
dat
向量中的一个字符串)

一种方法(与我的第一个代码建议相同,尽管效率较低)是

行和(sapply(未列出(表搜索),grepl,x=dat))>0
#[1]真假
其中,逻辑返回值指示是否找到了某些内容。例如,如果您想知道是否找到了两个或多个模式,可以使用
rowSums(.)>=2)


资料


Table\u搜索很好的解释。我将添加一条类似的评论,如果你有一个大的
Table\u search
向量,你可以将它调整为
replace(tablelist,!Reduce(` |``,lappy(Table\u search,grepl,x=tablelist)),NA)
来阻止正则表达式变大和崩溃。嗨,我已经通过一个单独的问题来回答这个问题。请告知。
Table 14.1.1.1 (Page 1 of 2)
Source Data: Listing 16.2.1.1.1
NA