Tôi có ma trận dữ liệu bảng dự phòng với 6 cột và 37 hàng. Tôi cần áp dụng phép biến đổi Chi bình phương để cung cấp cho tôi Hồ sơ hàng và Cấu hình cột cho một phân tích tương ứng.Chuyển đổi dữ liệu tránh các vòng lặp lồng nhau trong R
Thật không may tôi đã được thông báo rằng tôi sẽ cần phải sử dụng vòng lặp lồng nhau để chuyển đổi dữ liệu và thực hiện CA (thay vì thực hiện theo cách hợp lý hơn trong R). Tôi đã được đưa ra cấu trúc để sử dụng cho vòng lặp lồng nhau của tôi:
transformed.data=data0
for (row.index in 1:nrow(data)) {
for (col.index in 1:ncol(data)) {
transfomed.data[row.index,col.index]=
"TRANSFORMATION"[row.index,col.index]
}
}
Từ những gì tôi hiểu bằng cách sử dụng các vòng lặp lồng nhau nó sẽ được áp dụng tôi "CHUYỂN" đầu tiên các hàng và sau đó đến cột.
Việc chuyển đổi tôi muốn thực hiện trên các dữ liệu để có được các cấu hình liên tiếp là:
( X (ij)/sum (X (i)) )/sqrt (tổng (X (j)))
Trong khi việc chuyển đổi tôi muốn thực hiện trên các dữ liệu để có được các cấu hình cột là:
( X (ij)/sum (X (j)) )/sqrt (sum (X (i)))
tôi sẽ nhập gì như "sự chuyển tiếp của tôi RMATION " trong dòng cuối cùng của vòng lặp lồng nhau để có được nó để xuất chuyển đổi mong muốn của tôi cho các cấu hình. Nếu không, nếu tôi đã bỏ lỡ hiểu được điểm của một vòng lặp lồng nhau ở đây hãy mô tả những gì nó sẽ cho phép tôi làm.
Đây là mã cho một tập hợp con của dữ liệu của tôi:
matrix(c(15366,2079,411,366,23223,2667,699,819,31632,2724,717,1473,49938,3111,1062,11964)
,nrow=4,ncol=4,byrow=T)
Vì vậy, sử dụng nhóm này một mình tôi mong chờ hồ sơ cá nhân hàng cho hàng đầu tiên là:
0.002432689 0.0003291397 6.506803e-05 5.794379e-05
Và cột tiểu sử cho cột đầu tiên là:
0.0009473414, 0.0132572344, 0.0572742202, 0.0132863528
bạn có thể thêm một số dữ liệu mẫu để làm cho câu hỏi của bạn [tái sản xuất] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? Một số liệu đầu vào và kết quả mong đợi của bạn sẽ là cần thiết. Ngoài ra, bạn đã tìm kiếm các chức năng tích hợp chưa? Lần truy cập đầu tiên trên google đã cho tôi [this] (http://www.statmethods.net/advstats/ca.html). – Chase
Cảm ơn Chase, tôi sẽ thêm một số dữ liệu mẫu vào bài đăng đầu tiên. Liên quan đến câu hỏi thứ hai của bạn cho bài tập này, trước tiên tôi phải thực hiện phân tích tương ứng từng bước bằng cách chuyển đổi dữ liệu (bit mà tôi đang mắc kẹt) và thực hiện PCA và sau đó thực hiện theo các cách hợp lý hơn bằng cách sửa lỗi (dữ liệu gốc) và ca (dữ liệu gốc) – Confused
Âm thanh như bài tập về nhà? Một vài lời khuyên. 1) bạn không cần bất kỳ vòng lặp nào, 2) công thức của bạn có thể được thực hiện dễ dàng hơn nhiều nếu bạn sử dụng 'colSums()' và 'rowSums()' 3) khi mọi thứ khác thất bại, bạn có thể xem mã nguồn của các hàm để xem các tác giả khác đã giải quyết vấn đề tương tự như thế nào. Để thực hiện việc này, hãy nhập tên hàm mà không có dấu ngoặc vào bảng điều khiển. Điều này * có thể * là một chức năng một dòng với các thông tin trên. – Chase