5

2つのテーブルを比較したかった。表2の値が表2の0.3許容誤差(+0.3および-0.3)にある場合は正常と呼び、そうでない場合は異常と呼びます。

サンプルデータ:

Table 1.                        

0.17666667
-0.2413333
-0.179666
0.182437
0.012229
0.127333
-0.1180
0.8873
1.24100
1.5213

Table 2.

-1.6
-0.5
-0.4
-0.4
-0.2
2.5
0.6
2.2
2.3
1.3

最初の行に期待される結果:

0.17666667**の場合-0.3**<-1.6 <0.17666667 ** + 0.3 **

結果NORMAL それ以外の場合は異常

4

3 に答える 3

5

でこれを行うこともできますall.equal

table.1 <- scan(text="
0.17666667
-0.2413333
-0.179666
0.182437
0.012229
0.127333
-0.1180
0.8873
1.24100
1.5213")

table.2 <- scan(text="
-1.6
-0.5
-0.4
-0.4
-0.2
2.5
0.6
2.2
2.3
1.3")

are.close <- function(x, y, tol) isTRUE(all.equal(x, y, tol))
close <- mapply(are.close, x=table.1, y=table.2, tol=0.3)
result <- ifelse(close, 'N', 'A')
# [1] "A" "N" "N" "A" "N" "A" "A" "A" "A" "N"
于 2012-12-28T14:15:43.627 に答える
1

transform次のようにとの組み合わせを使用ifelseします。

DF <- data.frame(Table_1=unname(Table_1), Table_2=unname(Table_2))
DF <- transform(DF, 
                Result = ifelse(Table_1 - 0.3 < Table_2 & Table_2 < Table_1 + 0.3, 'Normal', 'Abnormal'))
      Table_1 Table_2   Result
1   0.1766667    -1.6 Abnormal
2  -0.2413333    -0.5   Normal
3  -0.1796660    -0.4   Normal
4   0.1824370    -0.4 Abnormal
5   0.0122290    -0.2   Normal
6   0.1273330     2.5 Abnormal
7  -0.1180000     0.6 Abnormal
8   0.8873000     2.2 Abnormal
9   1.2410000     2.3 Abnormal
10  1.5213000     1.3   Normal

データセットは次のとおりです。

Table_1 <- read.table(text="0.17666667
-0.2413333
-0.179666
0.182437
0.012229
0.127333
-0.1180
0.8873
1.24100
1.5213", header=F)

Table_2 <- read.table(text="-1.6
-0.5
-0.4
-0.4
-0.2
2.5
0.6
2.2
2.3
1.3", header=F)
于 2012-12-28T13:21:16.037 に答える
0

パッケージを使用するproxyと、これを距離または類似度の尺度として定式化できます。非常にクリーンで、あらゆる距離に対する拡張可能なソリューションです。

library(proxy)
result <- rep('abnormal',length(Table 1.))     ## initialize mu result vector
result[dist(df[,1], df[,2], 
       method = function(x,y) abs(x -y),       ## I define my own distance
       pairwise = TRUE) < 0.3] <- 'normal'     ## by pair distance

 result
 [1] "abnormal" "normal"   "normal"   "abnormal" "normal"  
     "abnormal" "abnormal" "abnormal"   
     "abnormal" "normal" 
于 2012-12-28T14:34:44.657 に答える