簡體   English   中英

將 250,000 行轉置為 R 中的列

[英]transpose 250,000 rows into columns in R

我總是在 R 中使用 t(file) 命令進行轉置。 但是我在大數據文件(250,000 行和 200 列)上沒有正常運行(根本沒有運行)。 有任何想法嗎。

我需要計算第二行(PTBP1)與所有其他行(包括標題在內的 8 行除外)之間的相關性。 為了做到這一點,我將行轉換為列,然后使用 cor function。

但我擊中了轉置 fn。 任何幫助將非常感激!

我從 stackoverflow 中的一篇文章中復制了示例(他們也幾乎在討論同一個問題,但似乎還沒有答案!)

ID A B C D E F G H I [200 columns]
Row0$-1 0.08 0.47 0.94 0.33 0.08 0.93 0.72 0.51 0.55
Row02$1 0.37 0.87 0.72 0.96 0.20 0.55 0.35 0.73 0.44
Row03$ 0.19 0.71 0.52 0.73 0.03 0.18 0.13 0.13 0.30
Row04$- 0.08 0.77 0.89 0.12 0.39 0.18 0.74 0.61 0.57
Row05$- 0.09 0.60 0.73 0.65 0.43 0.21 0.27 0.52 0.60
Row06-$ 0.60 0.54 0.70 0.56 0.49 0.94 0.23 0.80 0.63
Row07$- 0.02 0.33 0.05 0.90 0.48 0.47 0.51 0.36 0.26
Row08$_ 0.34 0.96 0.37 0.06 0.20 0.14 0.84 0.28 0.47
........
250,000 rows

請改用矩陣。 dataframe 相對於矩陣的唯一優勢是能夠在列中具有不同的類,而您顯然沒有這種情況,因為轉置的 dataframe 不支持這樣的結果。

我不明白你為什么要轉置data.frame。 如果您只使用cor ,那么您的數據是在行還是列中都沒有關系。
實際上,R 的主要優勢之一是,您的數據是否符合 SPSS 和其他程序需要數據的經典行列模式並不重要。

有很多方法可以將第一行與所有其他行關聯起來(我不知道您要排除哪些行)。 一種是使用循環(這里循環隱含在對 *apply 系列函數之一的調用中):

lapply(2:(dim(fn)[1]), function(x) cor(fn[1,],fn[x,]))

請注意,我希望您將 data.frame 稱為 fn。 要跳過某些行,請將 2 更改為您想要的數字。 此外,我可能會在這里使用vapply

我希望這個答案可以為您指明正確的方向,即如果您絕對不需要它,請不要使用t()

暫無
暫無

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

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