小编Tho*_*mas的帖子

在 R 中使用整数值代替数值(例如 1L 与 1)作为常量的好处

在 R 源代码中,大多数(但不是全部)函数使用整数值作为常量:

colnames <- function(x, do.NULL = TRUE, prefix = "col")
{
    if(is.data.frame(x) && do.NULL)
    return(names(x))
    dn <- dimnames(x)
    if(!is.null(dn[[2L]]))
    dn[[2L]]
    else {
        nc <- NCOL(x)
    if(do.NULL) NULL
        else if(nc > 0L) paste0(prefix, seq_len(nc))
        else character()
    }
}
Run Code Online (Sandbox Code Playgroud)

R语言定义说:

在大多数情况下,整数和数值之间的差异并不重要,因为 R 在使用数字时会做正确的事情。然而,有时我们想显式地为常量创建一个整数值。

  • 在哪些情况下需要强制常量使用整数值而不是简单地使用数值?例如,例如 1 会失败,但例如 1L 不会失败的示例是受欢迎的。
  • 相反,在哪些情况下不需要使用整数值(例如交互式使用与编程、使用常量索引等)?

问题是关于良好实践和基本原理,而不是关于“L”符号本身整数类和数字类之间的差异比较数字

integer interactive r function numeric

16
推荐指数
1
解决办法
796
查看次数

在 R 中使用 mapply 对子集参数的非标准评估

我不能使用subset的参数xtabsaggregate(或I测试,包括任何功能ftablelm)用mapply。以下调用因subset参数而失败,但它们可以在没有的情况下工作:

mapply(FUN = xtabs,
       formula = list(~ wool,
                      ~ wool + tension),
       subset = list(breaks < 15,
                     breaks < 20),
       MoreArgs = list(data = warpbreaks))

# Error in mapply(FUN = xtabs, formula = list(~wool, ~wool + tension), subset = list(breaks <  : 
#   object 'breaks' not found
# 
# expected result 1/2:
# wool
# A B 
# 2 2
# 
# expected result 2/2:
# …
Run Code Online (Sandbox Code Playgroud)

evaluation scope r subset mapply

9
推荐指数
1
解决办法
351
查看次数

R中xtabs和aggregate之间na.action的不一致

我有以下 data.frame:

x <- data.frame(A = c("Y", "Y", "Z", NA),
                B = c(NA, TRUE, FALSE, TRUE),
                C = c(TRUE, TRUE, NA, FALSE))
Run Code Online (Sandbox Code Playgroud)

我需要计算下表xtabs

A      B C
  Y    1 2
  Z    0 0
  <NA> 1 0
Run Code Online (Sandbox Code Playgroud)

我被告知要使用na.action = NULL,它确实返回了我需要的表:

xtabs(formula = cbind(B, C) ~ A,
      data = x,
      addNA = TRUE,
      na.action = NULL)

A      B C
  Y    1 2
  Z    0 0
  <NA> 1 0
Run Code Online (Sandbox Code Playgroud)

但是,na.action = na.pass返回一个不同的表:

xtabs(formula = cbind(B, C) ~ A, …
Run Code Online (Sandbox Code Playgroud)

aggregate r counting na

5
推荐指数
1
解决办法
354
查看次数

标签 统计

r ×3

aggregate ×1

counting ×1

evaluation ×1

function ×1

integer ×1

interactive ×1

mapply ×1

na ×1

numeric ×1

scope ×1

subset ×1