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)
我想计算平均值,sd和否。每行数据点数,但出现错误
x[, c("meanY",'sdY',"nY") := .(rowMeans(.SD, na.rm = TRUE), sd(.SD, na.rm = TRUE), rowSums(!is.na(.SD))), .SDcols=c(2:10)]
答案 0 :(得分:0)
假设输出为列表,您可以使用以下代码进行尝试:
var source = new HwndSource(new HwndSourceParameters())
{
RootVisual = this
};
它应与您的op <- c("mean","sd","length")
r <- lapply(op, function(v) apply(x, 1, eval(parse(text = v))))
names(r) <- op
示例一起使用:
data.frame
答案 1 :(得分:0)
问题出在sd()
上,无法逐行工作。
x[,
c("meanY",'sdY',"nY") :=
.(rowMeans(.SD, na.rm = TRUE),
apply(.SD, 1, sd, na.rm = TRUE),
rowSums(!is.na(.SD))),
.SDcols = 2:10]