2012-06-10 2 views
1

Я выполняю регрессии в R, используя функцию lm(), и я не могу отобразить результаты в простом формате. Мне нужно напечатать вектор значений p:Результаты регрессии: формат отображения по умолчанию

> summary(lm)$coef[,4] 
    (Intercept)   lun   d1un 
1.433706e-01 4.673723e-158 6.629044e-04 

Как я могу переопределить научную нотацию и получить разумную точность? Я пробовал опции (scipen = 1000), но он отображает бесконечные строки цифр, некоторые параметры (цифры = 7) здесь не работают.

Я знаю, что могу использовать такие вещи, как формат и спринты, но я бы хотел установить правило отображения по умолчанию для всех числовых выходов, например. не более 6 десятичных знаков.

+1

Вы можете дать ожидаемый выход? Вы хотите напечатать coef для 'lun' как' 0,000000'? –

+0

Да, если другая точность не указана явно, я хотел бы иметь 0,000000. –

ответ

0

Я не думаю, что это будет возможно, для общего отображения всей R. ?options говорит это о цифрах:

‘digits’: controls the number of digits to print when printing 
     numeric values. It is a suggestion only. Valid values are 
     1...22 with default 7. See the note in ‘print.default’ about 
     values greater than 15. 

Ключевой фраза «Это всего лишь предположение».

Далее следует отметить, что то, что напечатано, сначала определяется применяемым методом print() (это скрыто во время интерактивного использования, поскольку R auto-print() s). Подробнее см. ?print и ?print.default для основных методов. Из ?print.default отметим

digits: a non-null value for ‘digits’ specifies the minimum number of 
     significant digits to be printed in values. The default, 
     ‘NULL’, uses ‘getOption(digits)’. (For the interpretation 
     for complex numbers see ‘signif’.) Non-integer values will 
     be rounded down, and only values greater than or equal to 1 
     and no greater than 22 are accepted. 

и в разделе Детали мы имеем:

The same number of decimal places is used throughout a vector. 
    This means that ‘digits’ specifies the minimum number of 
    significant digits to be used, and that at least one entry will be 
    encoded with that minimum number. However, if all the encoded 
    elements then have trailing zeroes, the number of decimal places 
    is reduced until at least one element has a non-zero final digit. 
    Decimal points are only included if at least one decimal place is 
    selected. 

по умолчанию для digits является NULL, который указывает на то, что getOption("digits") используется, но, как мы уже отмечали, что это только руководство.

Невозможно настроить R, чтобы делать то, что вы хотите, и делать это глобально. Вам нужно будет переписать print.default() или все методы print(), которые вам нужно использовать, и использовать эту версию вместо стандартных версий - теперь нелегко теперь с NAMESPACES.

+0

Хорошо, спасибо. Думаю, я оставлю это как есть. –

 Смежные вопросы

  • Нет связанных вопросов^_^