不包括0的最小值(数据帧行)

时间:2014-05-20 20:20:28

标签: r dataframe row minimum

datas[1:n_row, ]    
                       IBOV     ABEV3 AEDU3 ALLL3
1       2000-01-03 1.0120990 0.0000000     0     0
2       2000-01-04 0.9860183 0.1463091     0     0
3       2000-01-05 0.9565528 0.1876168     0     0
4       2000-01-06 0.9286969 0.2059637     0     0
5       2000-01-07 0.9163109 0.1996892     0     0
6       2000-01-10 0.8943083 0.2147309     0     0

我正在使用:

MIN = apply(EWMA_SD252[,2:102],1,min)

创建另一个行最小值矩阵,但我想得到除0以外的MIN值(值总是正数) 任何想法?

2 个答案:

答案 0 :(得分:2)

x>0使用简单的逻辑提取:

MIN = apply(EWMA_SD252[,2:102], 1, function(x) min(x[x>0]))

答案 1 :(得分:1)

另一种选择是用最大值替换0值,然后保持相同的代码逐行获取。

mat[mat==0] <- max(mat)
apply(mat,1,min)