I've downloaded your code, and I'm seeing some strange results. When I
source MetroTest.R, it creates a log file ending
Error in if (xseg[w1] > ub & m == 1) olrmark[wi] = TRUE else if
(xseg[w1] < :
missing value where TRUE/FALSE needed
as you saw. But when I comment out the sink() lines in it, I don't see
an error. If I comment out only the first sink line, i.e. run with
my_log <- file("MetroTest.log")
#sink(my_log, append = TRUE, type = "output") # Writing console
output to log file
sink(my_log, append = TRUE, type = "message")
I get an error on the last line:
> sink(my_log, append = TRUE, type = "message")
Error in sink(my_log, append = TRUE, type = "message") :
'file' must be NULL or an already open connection
Once running this code R crashed.
I find all of that quite perplexing. I suspect one of the packages has
some buggy code, but I don't know which one. Currently I'm running the
script after running gctorture(); that's really slow. If it turns up
anything I'll let you know.
Duncan Murdoch
On 06/01/2022 10:23 a.m., Chuck Coleman wrote:
I've created a git repository at
https://sourceforge.net/p/rhelp/code/ci/master/tree/. I've used git before, so
that's what I chose. I had forgotten that sourceforge didn't have a download
all files command. I don't post files often.
About the semantics of "crash": Perhaps I'm showing my age here. It used to
be that programs crashed, bombed, etc. when they hit unanticipated errors. These
programs lived in a OS without an intermediary. Now, we have programs of programs
running within multiple applications on multiple servers with multiple OSs. Since I'm
not a programmer by profession, I've had little need to use these constructs.
Chuck Coleman
On Wednesday, January 5, 2022, 02:51:07 PM EST, Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
On 05/01/2022 2:09 p.m., Ivan Krylov wrote:
On Wed, 5 Jan 2022 21:22:37 +0300
Ivan Krylov <krylov.r...@gmail.com> wrote:
How exactly do you check for a missing argument?
To answer my own question, the check is
browser(expr = {
is.na(w1) | is.na(ub) | is.na(m) | is.na(wi) | is.na(lb)
})
I think that there are NAs in xseg, which I don't see a check for. In
particular, a few lines above, there's
md = median( xseg, na.rm = TRUE);
if (robust) sdd = mad(xseg,na.rm = TRUE)
else sdd = sd(xseg,na.rm = TRUE)
...which seems to suggest they are expected to happen there.
Not sure which advice to give regarding the choice of file hosting
service. On the one hand, SourceForge lets you upload a whole directory
of files in arbitrary formats, but isn't very convenient do download
more than one file from. On the other hand, "pastebin" services like
http://paste.debian.net/ or http://paste.org.ru/ let us browse the code
right away, without having to look at the "Your download will start
shortly..." screen, but don't host *.RData or more than one file per
link. I guess that some other code hosting service like
SourceHut/GitHub/GitLab/Gitea/... could fulfil both criteria.
I would take one step back, and suggest that if any project has as many
scripts as this one, it should be put in an R package. You can
distribute that by building it into a tar.gz file and putting that
single file in a place where people can download it. Github and R-forge
work well for packages, and I assume other hosting services do too,
though I haven't used many.
People seem to be unreasonably reluctant to put their code into packages.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.