2013-03-23 12 views
5

Tôi đang sử dụng lệnh fa của gói psych để phân tích nhân tố và do đó có đối tượng thuộc lớp fa. Tôi có thể truy vấn tải với fac$loadings, nhưng tôi muốn chỉ trích xuất bảng chứa tải, vì vậy tôi có thể sử dụng xtable (hoặc tương tự) để chuyển đổi nó thành định dạng LaTeX.psych - Tải các yếu tố tải trọng như data.frame để xuất LaTeX

Ví dụ mã:

library(psych) 
library(xtable) 
data(bfi) 
fac <- fa(r=cor(bfi, use="complete.obs"), nfactors=5, fm="ml", rotate="none") 
fac$loadings 
ld <- someMagicalFunction(fac$loadings) 
xtable(ld) 

bất cứ ai có thể cho tôi biết những gì tôi có thể sử dụng cho someMagicalFunction?

+1

'fac <- fa (r = cor (BFI), nfactors = 5, fm = "ml", xoay = "none") 'mang lại cho tôi rất nhiều thông báo lỗi (ví dụ,' Something nghiêm trọng sai ma trận tương quan.') và không tạo ra bất cứ điều gì. – Henrik

+0

@Henrik xin lỗi, nên được khắc phục ngay bây giờ. Cần thêm 'use =" complete.obs "' vào 'cor'. – bountiful

+0

Thực ra, chỉ cần nói fa (bfi, nfactors = 5, fm = "ml", xoay = "không"). Điều đó sẽ tìm thấy ma trận tương quan cặp đôi mà không cần phải tự làm điều đó. Kể từ phiên bản 1.3.10.11, fa sẽ lấy tham số sử dụng nếu bạn muốn chỉ định use = "complete". –

Trả lời

11

Khi bạn xem fac$loading, bạn thấy rằng đó là đối tượng S3. Loại bỏ các thuộc tính lớp mang đến cho bạn một matrix mà sau đó có thể được chuyển tới xtable:

str(fac$loadings) 
class(fac$loadings) 

xtable(unclass(fac$loadings)) 
+1

Lệnh này hoạt động để lấy ma trận tải trọng thực tế, nhưng làm thế nào bạn có thể nắm bắt nửa dưới của lệnh print.loadings(), cho phép tải trọng SS và Tỷ lệ và Phương sai tích lũy? – emudrak

+0

Vui lòng chỉ định gói mà bạn đang gọi là 'xtable()' từ. – sunitprasad1

+0

@ thư viện sunitprasad1 'xtable' như được chỉ định trong câu hỏi. – Henrik

5

đó làm việc tốt.

Một cách khác là sử dụng chức năng fa2latex trong psych:

Sử dụng ví dụ của bạn:

library(psych) 
fac <- fa(bfi,5) 
fa2latex(fac) 

sẽ cung cấp cho bạn một APA bảng sẵn sàng LaTeX.

Bill