[英]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個作為新變量,然后將該變量與dplyr
的group_by()
操作結合使用作為分組變量進行分組分析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.