आर

2012-12-28 32 views
5

में सहिष्णुता के संबंध में दो तालिकाओं के मूल्यों की तुलना करना मैं दो तालिकाओं की तुलना करना चाहता था। यदि तालिका 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.3 ** < -1.6 < ०.१७६६६६६७ ** + 0.3 **

परिणाम सामान्य अन्यथा असामान्य

उत्तर

4

तुम भी 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" 
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) 
0

proxy pacakge का उपयोग करना, हम एक दूरी या समानता उपाय, किसी भी दूरी को बहुत साफ है और एक्स्टेंसिबल समाधान के रूप में यह तैयार कर सकते हैं।

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"