我在R中有一个矩阵,看起来像这样: 0 0 1个 0 2 0 4
#Create Matrix
value <- c(0,0,1,0,2,0,4)
dff = matrix(value)
#Calculate Mean
mean(dff[,1])
给出1作为答案,但我希望平均值为1 + 0 + 2 + 0 + 4/5 = 7/5 = 1.4 因此,从本质上讲,我希望算法找到第一个非零值(在这种情况下为1),并将其用作系列(1,0,2,0,4)的起点。
这里的查询-Apply function to each cell of matrix in R-与我希望执行的查询类似,但是我似乎无法将其应用于此上下文。任何帮助,将不胜感激!谢谢!
答案 0 :(得分:0)
我们可以将矩阵转换为向量,获取第一个非零值的索引,子集,然后取mean
temp <- c(dff)
mean(temp[which.max(temp != 0) : length(temp)])
#[1] 1.4