gpt4 book ai didi

r - 为什么 .Traceback 将长字符串分成两部分?

转载 作者:行者123 更新时间:2023-12-02 02:52:36 24 4
gpt4 key购买 nike

我遇到过 R 中 .Traceback 对象的奇怪行为。

当我尝试打印简短的错误消息时,没问题,.Traceback[[1]] 有一个元素。但是当我尝试打印很长的字符串时,.Traceback[[1]] 对象变成了两个元素的列表。看:

>stop(paste("short", "string"))
Error: short string
>.Traceback
[[1]]
[1] "stop(paste(\"short\", \"string\"))"

>stop(paste("very loooooooooooooooooooooooooooooooooooooooooooooooooooooong", "string"))
Error: very loooooooooooooooooooooooooooooooooooooooooooooooooooooong string
>.Traceback
[[1]]
[1] "stop(paste(\"very loooooooooooooooooooooooooooooooooooooooooooooooooooooong\", "
[2] " \"string\"))"

你能帮我弄清楚吗?我真的对这种意外行为感到困惑。

最佳答案

Could you help me to figure it out?

似乎受options(width)影响

stop(paste("very loooooooooooooooooooooooooooooooooooooooooooooooooooooong", "string"))
.Traceback
#R [[1]]
#R [1] "stop(paste(\"very loooooooooooooooooooooooooooooooooooooooooooooooooooooong\", "
#R [2] " \"string\"))"

options(width = 9001)
stop(paste("very loooooooooooooooooooooooooooooooooooooooooooooooooooooong", "string"))
.Traceback
#R [[1]]
#R [1] "stop(paste(\"very loooooooooooooooooooooooooooooooooooooooooooooooooooooong\", " " \"string\"))"

虽然从帮助页面上看不清楚。虽然写在 help(".Traceback")

The calls may print on more than one line, ...

请注意 help(".Traceback")

Warning

It is undocumented where .Traceback is stored nor that it is visible, and this is subject to change.

很可能使用 traceback() 代替

tr <- traceback()
all.equal(tr, .Traceback)
#R [1] TRUE

关于r - 为什么 .Traceback 将长字符串分成两部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51405549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com