3

我尝试为我的数据 x 计算每列的总和。但我总是收到这个错误

"Error in colSums(x, na.rm = T) : invalid 'na.rm' argument"

为什么这个na.rm论点在这种情况下不起作用?使困惑...

x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
x[3, ] <- NA; x[4, 2] <- NA
rowSums(x)
colSums(x, na.rm=T)
4

2 回答 2

4

您会收到错误,因为 的值T已更改为无法解释为逻辑(TRUE 或 FALSE)的参数,可以是NA字符或字符。T在我看来,使用and是一个坏习惯F。为避免错误:

colSums(x, na.rm=TRUE)

TRUE(或FALSE)不能被覆盖,作为保留字。

只是为了好玩,您可以尝试:

T = FALSE
F = TRUE

colSums(x, na.rm=T)
colSums(x, na.rm=F)
于 2014-03-10T01:52:34.157 回答
3

我可以通过覆盖通常的值来重新创建您的错误Tto 等于NA

> T=NA
> colSums(all,na.rm=T)
Error in colSums(all, na.rm = T) : invalid 'na.rm' argument

所以最有可能的是,您(或一个有趣的同事?)已经T在代码中的某处定义了变量等于NA. 要撤消它,只需键入:

T=TRUE

或更好:

rm(T)

永远不要忘记 R 并不真正了解T=> 它只是为方便启动而定义的简写,仅此而已。

于 2014-03-10T01:40:49.260 回答