Displaying 20 results from an estimated 30 matches for "na_log".
Did you mean:
nalog
2025 Feb 01
2
[SPAM Warning!] Suggestion to emphasize Rboolean is unrelated to LGLSXP in R-exts
On Thu, 30 Jan 2025 13:07:31 -0800
Michael Chirico <michaelchirico4 at gmail.com> wrote:
> There are at least dozens of other cases on CRAN [2],[3].
Some of these involve casting an int to Rboolean. Best case, the int is
compared against NA_LOGICAL beforehand, avoiding any mistake (there's
at least one like that). Worst case, NA_LOGICAL is not considered before
the cast, so NA will now be interpreted as TRUE. This is hard to check
without actually reading the code.
Some packages compare an Rboolean expression against NA_LOGICAL [1]....
2018 May 08
2
unlist errors on a nested list of empty lists
...e and use.names being TRUE), which returns NULL.
And the problem is in the islistfactor function in src/main/apply.c,
which looks like this:
static Rboolean islistfactor(SEXP X)
{
int i, n = length(X);
switch(TYPEOF(X)) {
case VECSXP:
case EXPRSXP:
if(n == 0) return NA_LOGICAL;
for(i = 0; i < LENGTH(X); i++)
if(!islistfactor(VECTOR_ELT(X, i))) return FALSE;
return TRUE;
break;
}
return isFactor(X);
}
One of those deeply nested lists is length 0, so at the lowest level it
returns NA_LOGICAL. But then it does C-st...
2012 Sep 03
1
Possible page inefficiency in do_matrix in array.c
In do_matrix in src/array.c there is a type switch containing :
case LGLSXP :
for (i = 0; i < nr; i++)
for (j = 0; j < nc; j++)
LOGICAL(ans)[i + j * NR] = NA_LOGICAL;
That seems page inefficient, iiuc. Think it should be :
case LGLSXP :
for (j = 0; j < nc; j++)
for (i = 0; i < nr; i++)
LOGICAL(ans)[i + j * NR] = NA_LOGICAL;
or more simply :
case LGLSXP :
for (i = 0; i < nc*nr; i++)
LOGICAL(ans)[i] = NA_LOGICAL;
( wi...
2018 May 09
2
unlist errors on a nested list of empty lists
...or function in src/main/apply.c,
> which looks like this:
>
> static Rboolean islistfactor(SEXP X)
> {
> ? ? ?int i, n = length(X);
>
> ? ? ?switch(TYPEOF(X)) {
> ? ? ?case VECSXP:
> ? ? ?case EXPRSXP:
> ? ? ? ? ?if(n == 0) return NA_LOGICAL;
> ? ? ? ? ?for(i = 0; i < LENGTH(X); i++)
> ? ? ? ? ? ? ?if(!islistfactor(VECTOR_ELT(X, i))) return FALSE;
> ? ? ? ? ?return TRUE;
> ? ? ? ? ?break;
> ? ? ?}
> ? ? ?return isFactor(X);
> }
>
> One of those deeply nested lists...
2018 May 08
0
unlist errors on a nested list of empty lists
...t; And the problem is in the islistfactor function in src/main/apply.c,
> which looks like this:
>
> static Rboolean islistfactor(SEXP X)
> {
> int i, n = length(X);
>
> switch(TYPEOF(X)) {
> case VECSXP:
> case EXPRSXP:
> if(n == 0) return NA_LOGICAL;
> for(i = 0; i < LENGTH(X); i++)
> if(!islistfactor(VECTOR_ELT(X, i))) return FALSE;
> return TRUE;
> break;
> }
> return isFactor(X);
> }
>
> One of those deeply nested lists is length 0, so at the lowest level it...
2018 May 08
2
unlist errors on a nested list of empty lists
Reproducible example:
x <- list(list(list(), list()))
unlist(x)
*> Error in as.character.factor(x) : malformed factor*
What should happen:
unlist(x)
> NULL
R.version
platform x86_64-apple-darwin15.6.0
arch x86_64
os darwin15.6.0
system x86_64, darwin15.6.0
status
major 3
minor 5.0
year 2018
month 04
day
2018 May 09
0
unlist errors on a nested list of empty lists
...hich looks like this:
> >
> > static Rboolean islistfactor(SEXP X)
> > {
> > int i, n = length(X);
> >
> > switch(TYPEOF(X)) {
> > case VECSXP:
> > case EXPRSXP:
> > if(n == 0) return NA_LOGICAL;
> > for(i = 0; i < LENGTH(X); i++)
> > if(!islistfactor(VECTOR_ELT(X, i))) return FALSE;
> > return TRUE;
> > break;
> > }
> > return isFactor(X);
> > }
> >
&g...
2003 Jan 29
1
The function 'any' (PR#2503)
Full_Name: Paul Louisell
Version: 1.6.2
OS: Windows NT
Submission from: (NULL) (192.249.47.9)
There is a slight bug in the function 'any'. Given a logical vector (possibly
including values of 'NA'), the default action of any should be as follows:
(i) at least one value = T should return T
(ii) NO values = T
(a) at least one value = 'NA' should return 'NA'
2006 Jan 21
1
A patch for do_sample: check replace arg
...replace = asLogical(CAR(args)); args = CDR(args);
+ sreplace = CAR(args); args = CDR(args);
prob = CAR(args);
+ if (length(sreplace) != 1)
+ errorcall(call, _("invalid '%s' argument"), "replace");
+ replace = asLogical(sreplace);
if (replace == NA_LOGICAL)
errorcall(call, _("invalid '%s' argument"), "replace");
if (n == NA_INTEGER || n < 1)
2010 Jun 19
1
more powerful iconv
...rror(_("invalid '%s' argument"), "sub");
- if(STRING_ELT(CADDDR(args), 0) == NA_STRING) sub = NULL;
+ if(STRING_ELT(CADDDR(args), 0) == NA_STRING || isRawx) sub = NULL;
else sub = translateChar(STRING_ELT(CADDDR(args), 0));
mark = asLogical(CAD4R(args));
if(mark == NA_LOGICAL)
@@ -584,7 +585,7 @@
PROTECT(ans = duplicate(x));
R_AllocStringBuffer(0, &cbuff); /* 0 -> default */
for(i = 0; i < LENGTH(x); i++) {
- si = STRING_ELT(x, i);
+ si = isRawx ? x : STRING_ELT(x, i);
top_of_loop:
inbuf = CHAR(si); inb = LENGTH(si);
outbuf = c...
2006 Sep 08
1
R drop behavior -- set as option in later version?
...ent list.
The object being subsetted must be the first argument. */
static void ExtractDropArg(SEXP el, int *drop)
{
SEXP last = el;
for (el = CDR(el); el != R_NilValue; el = CDR(el)) {
if(TAG(el) == R_DropSymbol) {
*drop = asLogical(CAR(el));
if (*drop == NA_LOGICAL) *drop = 1;
SETCDR(last, CDR(el));
}
else last = el;
}
}
------------
This is not exactly the right syntax for a GetOption call, but
something along the following lines
should allow globally settable drop by modifying line 505:
------------
if(*drop == NA_LOG...
2006 Sep 08
1
R drop behavior -- set as option in later version?
...ent list.
The object being subsetted must be the first argument. */
static void ExtractDropArg(SEXP el, int *drop)
{
SEXP last = el;
for (el = CDR(el); el != R_NilValue; el = CDR(el)) {
if(TAG(el) == R_DropSymbol) {
*drop = asLogical(CAR(el));
if (*drop == NA_LOGICAL) *drop = 1;
SETCDR(last, CDR(el));
}
else last = el;
}
}
------------
This is not exactly the right syntax for a GetOption call, but
something along the following lines
should allow globally settable drop by modifying line 505:
------------
if(*drop == NA_LOG...
Control statements with condition with greater than one should give error (not just warning) [PATCH]
2017 Mar 03
2
Control statements with condition with greater than one should give error (not just warning) [PATCH]
...quot;,
"help.try.all.packages", "htmlhelp", "HTTPUserAgent",
Index: src/main/eval.c
===================================================================
--- src/main/eval.c (revision 72298)
+++ src/main/eval.c (working copy)
@@ -1851,9 +1851,13 @@
Rboolean cond = NA_LOGICAL;
if (length(s) > 1) {
+ int check = asInteger(GetOption1(install("check.condition")));
PROTECT(s); /* needed as per PR#15990. call gets protected by
warningcall() */
- warningcall(call,
- _("the condition has length > 1 and only the first element will be used&qu...
2025 Feb 03
1
boolean and logical types -draft
...lue NA for its elements.
b) R's Rboolean type in C/C++
c) C++'s bool type
d) C23's bool type
e) C99's _Bool type to which bool is aliased if <stdbool.h> is included.
f) Fortran's LOGICAL type
a) is currently implemented as a C int (so 32-bit) type with NA as the C
value NA_LOGICAL which is the same a NA_INTEGER.
b) is currently implemented as a C enum with two values. I don't know
of any guarantees on how that is stored except in char or an integer
type -- however it seems common practice to use a 32-bit type (int or
unsigned int would not be distinguishable)....
2023 Nov 07
1
c(NA, 0+1i) not the same as c(as.complex(NA), 0+1i)?
...han the present discussion) to see what exactly c() is doing in
this case:
https://github.com/r-devel/r-svn/blob/71e7480b07767f3b7d5c45a4247959aa4d83d910/src/main/bind.c#L418-L425
And indeed! It's not "coercion" in the sense I just described... there's a
branch for the 'x == NA_LOGICAL' case to _convert_ to NA_complex_.
On Mon, Nov 6, 2023 at 3:08?AM Martin Maechler <maechler at stat.math.ethz.ch>
wrote:
> >>>>> Michael Chirico
> >>>>> on Sun, 5 Nov 2023 09:41:42 -0800 writes:
>
> > This is another follow-up to...
2010 Sep 08
0
Correction to vec-subset speed patch
...or extracting many rows and columns of a large array, where the
improvement is by about a factor of four. Extracting many rows from
one column of a matrix is sped up by about 30%.
Changes unrelated to speed improvement:
Fixes two latent bugs where the code incorrectly refers to NA_LOGICAL
when NA_INTEGER is appropriate and where LOGICAL and INTEGER types
are treated as interchangeable. These cause no problems at the moment,
but would if representations were changed.
patch-subscript
(Formerly part of patch-vec-subset) This patch also speeds up
extraction,...
Control statements with condition with greater than one should give error (not just warning) [PATCH]
2017 Mar 03
0
Control statements with condition with greater than one should give error (not just warning) [PATCH]
...;htmlhelp", "HTTPUserAgent",
> Index: src/main/eval.c
> ===================================================================
> --- src/main/eval.c (revision 72298)
> +++ src/main/eval.c (working copy)
> @@ -1851,9 +1851,13 @@
> Rboolean cond = NA_LOGICAL;
> if (length(s) > 1) {
> + int check = asInteger(GetOption1(install("check.condition")));
> PROTECT(s); /* needed as per PR#15990. call gets protected by
> warningcall() */
> - warningcall(call,
> - _("the condition has length &g...
2023 Nov 08
1
c(NA, 0+1i) not the same as c(as.complex(NA), 0+1i)?
...> this case:
>
> >https://github.com/r-devel/r-svn/blob/71e7480b07767f3b7d5c45a4247959aa4d83d910/src/main/bind.c#L418-L425
>
> > And indeed! It's not "coercion" in the sense I just described... there's a
> > branch for the 'x == NA_LOGICAL' case to_convert_ to NA_complex_.
>
> Yes; "of course" ... still, I did not answer your main question,
> as you did ask +/- if c() should not get an adjustment to the
> new as.complex(<numeric-alike>) |--> (Re = NA, Im = 0)
> behavior.
>
> And...
2023 Nov 09
1
c(NA, 0+1i) not the same as c(as.complex(NA), 0+1i)?
...>>
>> >https://github.com/r-devel/r-svn/blob/71e7480b07767f3b7d5c45a4247959aa4d83d910/src/main/bind.c#L418-L425
>>
>> > And indeed! It's not "coercion" in the sense I just described... there's a
>> > branch for the 'x == NA_LOGICAL' case to_convert_ to NA_complex_.
>>
>> Yes; "of course" ... still, I did not answer your main question,
>> as you did ask +/- if c() should not get an adjustment to the
>> new as.complex(<numeric-alike>) |--> (Re = NA, Im =...
2012 Feb 26
2
Dealing with NAs in C
Hi.
I am currently converting a lot of R code to C in order to make it more
efficient. A lot of the data involves NAs. As the data is mainly integers >
0, I am just setting all NAs to 0 then sending it to the C code then
resetting them to NAs again after the C program is done, to be compatible
with the rest of the R code.
Is there a more efficient way to deal with NAs in C? I have used