簡體   English   中英

在df中的列的連續組上使用R進行因子分析

[英]Factor analysis using R over sequential groups of columns in df

我有一個具有10,000列(SNP頻率)的df。 我需要使用非重復向量進行仿真(因子分析)。 為此,我需要對分成10組的列子集進行因子分析。例如,cols 1:10,11:20; 21:30。 由於手動指定它會花費很多時間,因此我需要一個簡單的腳本來完成。 我寫了這個,但是似乎不起作用。 我無法弄清楚如何告訴R什么時候開始和停止每次迭代。

ind=seq(1,(ncol(df)-10),by=10)

for (i in ind) { start=i;end=i+9; rez = factanal(df,factors=1, start:end)  }

只是一個小指針:

 groups <- seq(from=1, to=10000, by=10)

這對於將列分為10組可能很有用。然后,對於組的每個元素,您可以添加0:9 看到

> 1 + 0:9
 [1]  1  2  3  4  5  6  7  8  9 10

這可以用於子集數據框。

例如,

for(i in groups){
  your_function( dat[, i + 0:9] )
}

將使用相應的數據執行您的功能。 確保適當存儲函數的輸出。 將其包裝為一個lapply調用可能會很有用,例如

 lapply(groups, function(x) your_function(dat[, x + 0:9]))

將輸出保存在列表中。

雖然這可能是一個問題的答案,讓我仍然增加,我會做什么,因為我認為這可以幫助你更從長遠來看:不是遍歷列,我會melt數據框為長格式,創建指示指數每組10個作為新變量,然后將該變量與dplyrgroup_by()操作結合使用作為分組變量進行分組分析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM