【发布时间】:2019-10-31 20:57:27
【问题描述】:
x <- matrix(rnorm(500 * 10), nrow = 500, ncol = 10)
x[, 1] <- 1:500
x <- data.frame(x)
names(x) <- c('ID', 2000:2008)
library(data.table)
setDT(x)
我想计算均值、标准差和否。每行的数据点数,但我收到错误
x[, c("meanY",'sdY',"nY") := .(rowMeans(.SD, na.rm = TRUE), sd(.SD, na.rm = TRUE), rowSums(!is.na(.SD))), .SDcols=c(2:10)]
【问题讨论】:
-
data.table|frames 没有sd方法。试试sd(iris, na.rm=TRUE)你会得到同样的错误。你到底想要什么? -
我需要每一行的平均值、标准差和数据点数。我的原始数据在某些行中有 NA,这也是我使用 na.rm = T 的原因。
-
x[, c("meanY",'sdY',"nY") := .(rowMeans(.SD, na.rm = TRUE), sd(.SD, na.rm = TRUE), rowSums(!is.na(.SD))), .SDcols=c(2:10), by=ID]怎么样? -
@MichaelChirico,我不确定您所说的
There is no sd method for data.table是什么意思?
标签: r data.table