2015-07-17 3 views
0

У меня есть вектор p.values, и я бы изменил эти крайности на системные значения mininum, такие как <2.0e-10. Я задаюсь вопрос, есть ли способ, чтобы сделать их, как если бы они были числовыми, так что я могу сделать сюжет и сравнение и т.д. Например:as.numeric "<2.0e-10"?

x0<-c(2.0e-18, 1.0e-40, 0.001, 0.05, 5.0e-5) 

Тогда я заменить первые два на "< 2.0E-16 «:

x1<-ifelse(x0<2.0e-16, "<2.0e-16", x0) 
x1 
[1] "<2.0e-16" "<2.0e-16" "0.001" "0.05"  "5e-05" 

то, что я хотел бы это сделать x1, эквивалентную его числовой один х2, такие как:

x2<-c(2.0e-16, 2.0e-16, 0.001, 0.05, 5.0e-5) 

возможно ли это?

+1

Какой тип сюжета вы делаете? Я, наверное, лучше усекать ценности и беспокоиться о настройке ярлыков оси графика, а не пытаться придумать данные, которые являются как цифровыми, так и персонажами. – MrFlick

+0

Вы можете делать то, что хотите, с помощью 'x2 <- as.numeric (gsub (" <"," ", x1))', но это похоже на ужасный способ работы с вашими данными. – Molx

+1

'format.pval (x0, eps = 2e-16)' и 'as.numeric (gsub ('<', '', format.pval (x0, eps = 2e-16)))' – rawr

ответ

0

Почему бы просто не трансформировать x0<2.0e-16 в 2.0e-16. Ниже приведен ваш ожидаемый результат:

x0 <- c(2.0e-18, 1.0e-40, 0.001, 0.05, 5.0e-5) 
x1 <- ifelse(x0<2.0e-16, 2.0e-16, x0) 

x2 <- c(2.0e-16, 2.0e-16, 0.001, 0.05, 5.0e-5) 

identical(x1,x2) 
[1] TRUE 
Смежные вопросы