R语言每次运行结果返回值的个数为啥不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言每次运行结果返回值的个数为啥不同相关的知识,希望对你有一定的参考价值。

以下是我的脚本,正常运行应该有19600个返回值在list1中,但每次运行只能返回1000个上下,但对应位置元素是相同的,请问各位大佬有没有遇到相同的情况?

R和C这些语言不一样,同一个函数,不同的输入可能会有不同的返回值类型。对于一次特定的调用,可以用class()、typeof()函数看类型,其中class()给的是更“高级”一点的类型概念,typeof()用得比较少,给的是“低级”一点的类型概念。 参考技术A 可能是没有写options(max.print = 10000),它会限制字数的所以要搞个max.print

R - 为啥 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语言每次运行结果返回值的个数为啥不同的主要内容,如果未能解决你的问题,请参考以下文章

R语言return返回值的形式实战

Go语言函数返回值

R语言使用nls拟合,为啥总说循环次数大于50

JAVA语言中 有返回值的方法和无返回值的方法有啥区别啊 请举例子说明!!

12 函数返回值的地址引用

R - 为啥 str_detect 在以破折号结尾的“单词”上使用单词边界时返回与 grepl 不同的结果