R对每列应用ecdf
我试图获取数据帧中每列R对每列应用ecdf,r,apply,ecdf,R,Apply,Ecdf,我试图获取数据帧中每列c的ecdf(),然后将列的行r馈送到该列的ecdf(c)中,以返回每个单元格的相应值ecdf(c)(r)。下面的函数起作用 getecdf <- function(data){ # initialise result data result <- data.frame(matrix(NA, nrow = nrow(data), ncol = ncol(data))); rownames(result) <- rownames(data); c
c
的ecdf(),然后将列的行r
馈送到该列的ecdf(c)
中,以返回每个单元格的相应值ecdf(c)(r)
。下面的函数起作用
getecdf <- function(data){
# initialise result data
result <- data.frame(matrix(NA, nrow = nrow(data), ncol = ncol(data)));
rownames(result) <- rownames(data); colnames(result) <- colnames(data);
for (c in 1:ncol(data)){
col <- data[,c];
cum <- ecdf(col)
for (r in 1: length(col)){
result[r,c] <- cum(col[r])
}
}
return <- result
}
cum_matrix <- getecdf(iris)
但不知道如何存储结果
有什么帮助吗?ecdf已矢量化,您可以使用
apply(iris[, 1:4], 2, function(c) ecdf(c)(c))
ecdf(c)
返回一个(step)函数,该函数接受一个向量作为求值的参数(在本例中再次在c
位置求值)是的,我太笨了。实际上,我以前已经将向量输入到ecdf()
中,但由于某种原因,在这种情况下我没有想到。。。
apply(iris[, 1:4], 2, function(c) ecdf(c)(c))