Я выполняю анализ основных компонентов в наборе данных с более чем 1000 переменными. Я использую R Studio, и когда я запускаю сводку, чтобы увидеть кумулятивную дисперсию компонентов, я могу видеть только последние несколько сотен компонентов. Как ограничить резюме только показом, скажем, первых 100 компонентов?R - Конечный вывод summary.princomp
ответ
Это довольно легко изменить print.summary.princomp
(вы можете увидеть исходный код, введя stats:::print.summary.princomp
), чтобы сделать это:
pcaPrint <- function (x, digits = 3, loadings = x$print.loadings, cutoff = x$cutoff,n, ...)
{
#Check for sensible value of n; default to full output
if (missing(n) || n > length(x$sdev) || n < 1){n <- length(x$sdev)}
vars <- x$sdev^2
vars <- vars/sum(vars)
cat("Importance of components:\n")
print(rbind(`Standard deviation` = x$sdev[1:n], `Proportion of Variance` = vars[1:n],
`Cumulative Proportion` = cumsum(vars)[1:n]))
if (loadings) {
cat("\nLoadings:\n")
cx <- format(round(x$loadings, digits = digits))
cx[abs(x$loadings) < cutoff] <- paste(rep(" ", nchar(cx[1,
1], type = "w")), collapse = "")
print(cx[,1:n], quote = FALSE, ...)
}
invisible(x)
}
pcaPrint(summary(princomp(USArrests, cor=TRUE),
loadings = TRUE, cutoff = 0.2), digits = 2,n = 2)
Отредактировано Чтобы включить базовую проверку на разумном значении для n
. Теперь, когда я сделал это, я задаюсь вопросом, не стоит ли предлагать R Core как постоянное дополнение; кажется простым и, как будто это может быть полезно.
Большое вам спасибо. Именно то, что мне нужно. Это упрощает процесс сбора данных. – user1209675
@joran: да, это особенность, которую стоит отправить команде R-Core IMO. – digEmAll
Вы можете поместить нагрузки в матричную форму, вы можете сохранить матрицу в переменной, а затем подмножество (a la matrix[,1:100]
), чтобы увидеть первый/средний/последний n. В этом примере я использовал head(). Каждый столбец является основным компонентом.
head(
matrix(
prin$loadings,
ncol=length(dimnames(prin$loadings)[[2]]),
nrow=length(dimnames(prin$loadings)[[1]])
),
100)
Я попробовал это, и это, кажется, работает: л = Нагрузки() прин л [1: 100]
- 1. Публичный конечный класс R уже определен
- 2. VHDL Конечный конечный автомат
- 3. Как добавить атрибут графика точки в конечный вывод вывода
- 4. Вывод нового R-кода из R
- 5. R: как центрировать вывод в R markdown
- 6. Почему конечный результат варьируется?
- 7. Визуализировать конечный конечный автомат, определяемый XML
- 8. Сохранить вывод R как объект
- 9. Слишком большой вывод в R
- 10. R Shiny: нереактивный текстовый вывод
- 11. Неправильный вывод стохастики в R
- 12. R pred - Как форматировать вывод
- 13. R - sort() вывод отсутствует строка
- 14. Отсутствует вывод консоли в R
- 15. R обрезает мой ссылочный вывод
- 16. Довольно вывод всегда «\ r \ n»
- 17. Вывод из рекурсивной функции R
- 18. Понимая вывод «предсказывать» в R
- 19. R: Отформатированный вывод из biglm
- 20. R Shiny: сохранить старый вывод
- 21. R: Растровый вывод в PDF
- 22. R tryCatch neuralnet, неожиданный вывод
- 23. Обнаружен конечный выключатель обнаружения
- 24. Распаковка конечный р-значение с выхода регрессии (лм) в R
- 25. Соответствующий конечный контекст в flex
- 26. Как создать конечный конечный автомат в Objective-C
- 27. C# - Конечный результат цикла
- 28. Как преобразовать линейную грамматику в конечный конечный автомат
- 29. Где я должен поставить конечный конечный автомат в Objective C?
- 30. Является ли конечный конечный автомат правильным способом сделать в crm?
Можете ли вы предоставить небольшой воспроизводимый пример? – digEmAll
@ digemall На самом деле, набор данных огромен. Я просто запускаю: prin <- princomp (train [c (2: 1777)]) summary (prin) Когда я это делаю, он показывает информацию для всех основных компонентов 1776. Мне нужны только первые 100 или около того. – user1209675
Да, конечно, не полный код. Я имел в виду пример litte, чтобы точно понять ваши шаги. Во всяком случае @joran получил смысл;) – digEmAll