Распечатать информацию о загрузках и выгрузках в R - PullRequest
2 голосов
/ 17 июля 2011

Я новичок в R, и меня попросили подготовить сценарий, который будет использоваться для записи некоторых выводов R в текстовый файл.

Мне был дан набор команд, который создает соединение с БД, загружает данные, а затем выполняет некоторые математические вычисления и выводит сводку, загрузки и YLoadings. Я должен захватить этот вывод и сохранить его в базе данных. У меня уже все работает, кроме одного бита, который снова и снова дает проблемы.

Функции загрузки и загрузки иногда выдают матрицу, в которой есть пробелы. Например,

       Comp 1, Comp 2, Comp 3
Row1   0.495  0.748 -0.272
Row2   0.605        -0.562
Row3   0.666 -0.397  0.781
Row4                     
LongNameRow1   0.536        -1.483
LongNameRow2  -0.681 -0.408 -1.145

Из-за таких выходных данных мне приходится вручную проверять файлы и редактировать их, чтобы они стали,

      Comp 1, Comp 2, Comp 3
Row1  0.495  0.748 -0.272
Row2  0.605  0.000 -0.562
Row3  0.666 -0.397  0.781
Row4  0.000  0.000  0.000
LongNameRow1  0.536  0.000 -1.483
LongNameRow2 -0.681 -0.408 -1.145

т.е.. Я должен вручную заменить все пробелы на 0,000 (я не уверен, что 0,000 - правильное значение, но это было единственное, что я мог придумать) в выводе. Это очень трудоемкий и болезненный процесс.

Я провел поиск по функции загрузки и нашел,

Небольшие нагрузки обычно не печатаются (заменяются пробелами), чтобы обратить внимание на схему больших нагрузок.

Итак, мой вопрос: есть ли какие-то другие методы или конфигурации, которые мне не хватает, которые могут дать мне вывод, как мне нужно? то есть 0,000 вместо пробелов или какое-либо другое разумное значение? По крайней мере, мне интересно, могу ли я разделить вывод запятыми или символом канала (например, "|") или что-то подобное, чтобы сделать анализ текста возможным?

Заранее спасибо за помощь !!!

1 Ответ

2 голосов
/ 17 июля 2011

Ответ - использовать unclass для преобразования нагрузок в матрицу.Следующий пример иллюстрирует это.

Функция loadings извлекает матрицу нагрузок и изменяет класс этой матрицы на loadings.Когда вы печатаете объект класса loadings, маленькие значения не печатаются, как вы заметили.

Вот пример из ?princomp:

fit <- princomp(USArrests, cor = TRUE)
l <- loadings(fit)
l

Loadings:
         Comp.1 Comp.2 Comp.3 Comp.4
Murder   -0.536  0.418 -0.341  0.649
Assault  -0.583  0.188 -0.268 -0.743
UrbanPop -0.278 -0.873 -0.378  0.134
Rape     -0.543 -0.167  0.818       

               Comp.1 Comp.2 Comp.3 Comp.4
SS loadings      1.00   1.00   1.00   1.00
Proportion Var   0.25   0.25   0.25   0.25
Cumulative Var   0.25   0.50   0.75   1.00

Это довольно простоизменить класс этого объекта обратно по умолчанию.Если вы затем распечатываете его, значения отображаются как истинные базовые значения

l <- unclass(l)
l

             Comp.1     Comp.2     Comp.3      Comp.4
Murder   -0.5358995  0.4181809 -0.3412327  0.64922780
Assault  -0.5831836  0.1879856 -0.2681484 -0.74340748
UrbanPop -0.2781909 -0.8728062 -0.3780158  0.13387773
Rape     -0.5434321 -0.1673186  0.8177779  0.08902432
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...