R语言每次运行结果返回值的个数为啥不同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言每次运行结果返回值的个数为啥不同相关的知识,希望对你有一定的参考价值。
以下是我的脚本,正常运行应该有19600个返回值在list1中,但每次运行只能返回1000个上下,但对应位置元素是相同的,请问各位大佬有没有遇到相同的情况?
R和C这些语言不一样,同一个函数,不同的输入可能会有不同的返回值类型。对于一次特定的调用,可以用class()、typeof()函数看类型,其中class()给的是更“高级”一点的类型概念,typeof()用得比较少,给的是“低级”一点的类型概念。 参考技术A 可能是没有写options(max.print = 10000),它会限制字数的所以要搞个max.printR - 为啥 str_detect 在以破折号结尾的“单词”上使用单词边界时返回与 grepl 不同的结果
【中文标题】R - 为啥 str_detect 在以破折号结尾的“单词”上使用单词边界时返回与 grepl 不同的结果【英文标题】:R - why does str_detect return a different result than grepl when using word boundary on 'words' ending with dashR - 为什么 str_detect 在以破折号结尾的“单词”上使用单词边界时返回与 grepl 不同的结果 【发布时间】:2019-08-25 20:07:54 【问题描述】:str_detect 的帮助页面声明“等效于 grepl(pattern, x)”,但是:
str_detect("ALL-", str_c("\\b", "ALL-", "\\b"))
[1] FALSE
虽然
grepl(str_c("\\b", "ALL-", "\\b"), "ALL-")
[1] TRUE
我想其中一个没有按预期工作?还是我错过了什么?
【问题讨论】:
不确定是否是单词边界,因为str_detect("ALL-", str_c("\\b", "ALL", "\\b"))
返回TRUE
。
【参考方案1】:
当您将参数perl = TRUE
添加到grepl()
时,它会给出相同的结果:
> grepl(str_c("\\b", "ALL-", "\\b"), "ALL-")
[1] TRUE
> grepl(str_c("\\b", "ALL-", "\\b"), "ALL-", perl = T)
[1] FALSE
这个参数意味着grepl()
将使用 Perl Compatible Regex。
?grep
中有这个警告,可能有关系?
gsub 和 gregexpr 的 POSIX 1003.2 模式无法正确处理重复的单词边界(例如,pattern = "\b")。对此类匹配项使用 perl = TRUE(但对于非 ASCII 输入,这可能无法按预期工作,因为“单词”的含义取决于系统)。
【讨论】:
以上是关于R语言每次运行结果返回值的个数为啥不同的主要内容,如果未能解决你的问题,请参考以下文章