r中的NROW和nrow有什么区别?

sut*_*777 2 alias r matrix rowcount

如果我们在r中已经有了nrowncol,那么为什么还有NROW和NCOL呢。它们之间有什么区别还是只是一个别名?

mx <- matrix(1:12,3,4)

nrow(mx)
NROW(mx)

ncol(mx)
NCOL(mx)
Run Code Online (Sandbox Code Playgroud)

Pav*_*ive 6

在 R 中,您始终可以检查函数的代码,输入不带括号的函数名称。NCOL这样做,您可以看到和之间的差异ncol

NCOL
  # function (x) 
  # if (length(d <- dim(x)) > 1L) d[2L] else 1L
  # <bytecode: 0x560bca6cb290>
  # <environment: namespace:base>

ncol
  # function (x) 
  # dim(x)[2L]
  # <bytecode: 0x560bc9691cd0>
  # <environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

ncol将始终返回参数的第二个维度,而NCOL将检查参数是否只有一维,在这种情况下它将返回1