2012-10-15 4 views
0
을 생산

하십시오, R에 다음과 같은 구조를 넣어 :cm.quantile는 NaN이

M <- structure(c(0.861, 0.02115, 0.01031, 0.00218, 0.00062, 0.00075, 
0.00047, 0.00028, 0.00049, 0.00046, 0.00025, 0, 0, 0.00028, 0, 
0, 0, 0, 0, 0, 0, 0, 0.05806, 0.74127, 0.04621, 0.01426, 0.00119, 
0.00036, 0.00054, 0.00041, 0.00069, 0.00011, 2e-05, 0, 0.00018, 
0.00013, 0, 5e-05, 0.00036, 0, 0, 0, 0, 0, 0.02818, 0.08446, 
0.73325, 0.04292, 0.01296, 0.00212, 0.00136, 0.00082, 4e-04, 
0.00035, 0.00027, 0.00026, 0.00011, 0.00015, 7e-05, 0.00037, 
0, 0, 0, 0, 0, 0, 0.00544, 0.06172, 0.09626, 0.74319, 0.05289, 
0.0108, 0.00233, 0.00153, 0.00079, 0.00043, 0.00048, 0, 0.00027, 
8e-05, 8e-05, 0, 0, 0, 0, 0, 0, 0, 0.00326, 0.01558, 0.03482, 
0.08853, 0.74873, 0.05157, 0.01757, 0.00257, 0.00169, 0.00121, 
0.00171, 0.00026, 0.00021, 0.00038, 0.00018, 8e-05, 0, 0, 0, 
0, 0, 0, 0.00124, 0.00656, 0.01336, 0.03007, 0.08159, 0.75361, 
0.06561, 0.01745, 0.0068, 0.00239, 0.00146, 0.00076, 0.00144, 
8e-04, 0, 0.00019, 0.00029, 0.00011, 0, 0, 0, 0, 0.00014, 0.00125, 
0.00436, 0.00979, 0.02872, 0.07991, 0.73237, 0.06614, 0.0248, 
0.00557, 0.00342, 0.00063, 0.00127, 0.00088, 0.00037, 0.00064, 
0, 0, 0, 0, 0, 0, 0.00012, 0.0016, 0.00099, 0.0028, 0.0071, 0.0285, 
0.06673, 0.72947, 0.05849, 0.02627, 0.00567, 0.00293, 0.00147, 
0.00063, 0.00091, 0.00041, 0.00058, 0.00011, 0, 0, 0, 0, 0, 0.00029, 
0.00113, 0.00235, 0.00401, 0.00852, 0.03129, 0.07254, 0.73812, 
0.08704, 0.02916, 0.00736, 0.003, 0.00127, 9e-04, 0.00053, 0, 
0.00056, 0, 0, 0, 0, 0, 6e-05, 2e-05, 0.00079, 0.00171, 0.00407, 
0.01094, 0.02855, 0.06595, 0.70365, 0.09882, 0.03277, 0.00725, 
0.00273, 0.00133, 0.00093, 4e-05, 0.00214, 0, 0, 0, 0, 0.00016, 
6e-05, 3e-04, 0.00022, 0.0022, 0.0019, 0.00471, 0.00774, 0.01578, 
0.04864, 0.63246, 0.08694, 0.0249, 0.00447, 0.00286, 0.00076, 
0.00058, 0.00096, 0.00126, 0.00065, 0, 0, 0.00016, 0, 6e-05, 
0.00028, 0.00141, 0.00121, 0.00177, 0.00433, 0.00612, 0.02536, 
0.04685, 0.62721, 0.06413, 0.02543, 0.00599, 0.00224, 4e-04, 
0.00079, 0.00095, 0.00146, 0, 0, 0, 3e-05, 0, 0.00024, 0.00047, 
0.0012, 0.00191, 0.00286, 0.00555, 0.01114, 0.03758, 0.06879, 
0.63721, 0.06643, 0.01916, 0.00552, 0.00248, 0.00406, 0, 0.00195, 
0, 0, 2e-05, 0, 0.00016, 0.00024, 0.00078, 0.00051, 0.00097, 
0.00354, 0.00468, 0.0081, 0.01457, 0.02812, 0.05973, 0.63797, 
0.0695, 0.02281, 0.00754, 0.00682, 0.00158, 0.00211, 0, 0, 0, 
0, 8e-05, 0, 0.00024, 0.00036, 0.00049, 0.00074, 0.00239, 0.00355, 
0.0105, 0.02154, 0.0443, 0.06606, 0.61553, 0.06689, 0.02387, 
0.01201, 0.00443, 0.00552, 0, 0, 0, 0, 6e-05, 0, 1e-04, 0.00012, 
0.00022, 0.00042, 0.00104, 0.00262, 0.00677, 0.00992, 0.02098, 
0.03936, 0.079, 0.59103, 0.09278, 0.03765, 0.01549, 0.01576, 
0, 0, 0, 0, 0, 3e-05, 0, 0.00033, 3e-05, 0.00053, 0.00121, 0.00182, 
0.00138, 0.00213, 0.00489, 0.01213, 0.03251, 0.06436, 0.5217, 
0.07683, 0.02941, 0.01836, 0, 0, 2e-05, 0, 0.00024, 0, 7e-05, 
0.00032, 4e-05, 0.00029, 0.00017, 9e-04, 0.00185, 0.00202, 0.00339, 
0.00545, 0.01572, 0.03769, 0.08199, 0.46362, 0.07383, 0.03559, 
0, 0, 0, 0, 0, 0, 0, 6e-05, 7e-05, 7e-05, 0.00027, 0.00104, 0.00044, 
8e-04, 0.00068, 0.00253, 0.00483, 0.01156, 0.04023, 0.05112, 
0.3796, 0.04176, 0, 0, 0, 0, 4e-05, 0, 0, 0, 0.00014, 2e-04, 
1e-04, 0.00042, 0.00054, 0.00106, 0.00114, 0.00362, 0.0057, 0.01098, 
0.02518, 0.04904, 0.07889, 0.35197, 0, 0, 0.0422, 0.065969, 0.058349, 
0.06165, 0.05443, 0.05312, 0.05984, 0.05811, 0.06283, 0.06596, 
0.09949, 0.09921, 0.10674, 0.10623, 0.10933, 0.11679, 0.11731, 
0.12062, 0.14814, 0.16705, 1, 0, 0, 1.00000000002876e-06, 9.99999999917733e-07, 
0.000460000000000127, 0.000780000000000114, 0.000659999999999883, 
0.000600000000000045, 0.00141000000000013, 0.00163999999999986, 
0.00296999999999981, 0.00631000000000004, 0.00729000000000002, 
0.01671, 0.0229900000000003, 0.0360299999999999, 0.0661700000000001, 
0.0846699999999999, 0.17356, 0.26642, 0.35782, 0, 1), .Dim = c(22L, 
22L), .Dimnames = list(c("Aaa", "Aa1", "Aa2", "Aa3", "A1", "A2", 
"A3", "Baa1", "Baa2", "Baa3", "Ba1", "Ba2", "Ba3", "B1", "B2", 
"B3", "Caa1", "Caa2", "Caa3", "Ca-C", "WR", "Default"), c("Aaa", 
"Aa1", "Aa2", "Aa3", "A1", "A2", "A3", "Baa1", "Baa2", "Baa3", 
"Ba1", "Ba2", "Ba3", "B1", "B2", "B3", "Caa1", "Caa2", "Caa3", 
"Ca-C", "WR", "Default"))) 
다음 코드

이제 입력 : 내 시스템에서

library(CreditMetrics) # donwloadable from CRAN repository 
cm.quantile(M) 

이 마지막 열 행렬을 반환 Aaa이라는 이름의이 파일은 NaN을 포함합니다. 이 NaN은 내 코드 개발의 큰 문제입니다.

NaN이 발생하며 어떻게이 문제를 해결할 수 있습니까?

답변

1

NAN 및 Inf는 0으로 나누거나 음수의 대수를 포함하여 데이터를 계산 한 결과 발생합니다.

당신은 같은 개체에서 NaN이의 존재를 확인할 수 있습니다 제거하려는 경우

is.infinite(object) 

: 당신은 같은 개체에 Inf를의 존재를 확인할 수 있습니다

is.nan(object) 

NaN 및 Infs를 사용하면 다음을 시도 할 수 있습니다.

object = M 
    M[is.nan(M)] <- NA # assign NA, commonly referred as missing values, to NaN values 
    M[is.infinite(M)] <- NA # assign NA to Inf values 

그런 다음 분석 중에 NA를 유지하거나 요 너는 그것을 선호한다.

M <- data.frame(M) 
    M <- na.omit(M) 

은 NAS의 존재를 확인하려면, 당신은 시도 할 수 있습니다 :

is.na(M) 

는 NAS의 부재에 대한 NAS의 존재와 거짓에 대해 "TRUE"로 논리적 데이터 구조를 제공합니다. 당신은 subscript로 그것을 사용하여 데이터 구조의 모든 NA를 제거 할 수 있습니다.

참고 : R의 통계 모델은 모델 구축 중에 NA를 제거 할 수있는 옵션을 제공합니다.

   na.rm = TRUE/FALSE 

R의 통계 방법을 사용하면이 옵션을 사용할 수 있습니다. ggplot2와 같은 그래픽 패키지조차도 그래프를 플로팅하는 동안 NAs를 제거 할 수있는 옵션을 제공합니다. 이는 본질적으로 사용자가 데이터에 NAs를 유지할 수 있으며 분석의 적절한 시점에 NAs를 제거 할 수 있음을 나타냅니다.

HTH!

+0

감사합니다. Sathish. 그냥 질문 : 나는 그 코드에서 얻을'NaN'과 동일한 결과를 얻을 수 있습니까? 그렇다면'qnorm()'의 문제 일 수 있습니까? 'cm.quantile()'의 코드를 분석하면'Rn '이 만들어지고 R은'qnorm()'을 1에 적용하면 모든 Inf를 생성해야하지만 때때로 NaN을 반환합니다. –

+0

예, 나는 그것들을 또한 볼 수 있습니다. 필자의 지식으로, quantile은 확률의 역수이므로 cm.quantile() 함수가 데이터에 적용될 때 0과 1은 Infs를 표시합니다. 이 함수의 기본 프로세스를 살펴 봐야 할 수도 있으므로이 예외 또는 일부 종류에 대해 이해할 수 있습니다. – Sathish

+0

NaN은 "Not a Number"를 참조합니다. – Sathish

관련 문제