Re: [問題] 多筆資料運算Pearson相關系數
你的想法是可行的。不過我用 apply 改寫一下,但意思一樣。
# 以下設計一個 data frame 叫 dat,欄數和列數和你的不同,但結構應該相似。
name <- c("a", "b", "c")
mat <- as.data.frame(matrix(rnorm(24), 3))
dat <- cbind(name, mat)
# 利用 apply 逐列算出相關係數,存成 cor.pearson
cor.pearson <- apply(dat[, -1], 1, function(x){
cor(x[1:4], x[5:8]) # 1:4 5:8 你要改成1:30 31:60
#(如果 X 和 Y 排列像你的例子一模一樣的話)
})
# 建立一個 data frame 方便讀取結果
data.frame(name = dat$name, cor.pearson)
※ 引述《Shadowy (+ing)》之銘言:
: [問題類型]:
:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
:
: 新手(沒寫過程式,R 是我的第一次)
:
: [問題敘述]:
:
: 各位先進好:
: 我有50萬筆資料,每一筆資料有30組(X,Y)的數據,
: 想要針對每一筆的X,Y運算Pearson相關係數,
: 資料格式,如下:
: Name X1 X2 ... X30 Y1 Y2 ... Y30
: .
: .
: .
: .
: 共50萬筆
: 欲輸出格式為:
: (Name) (Pearson's cor)
: 因為沒有太多的程式撰寫經驗,
: 目前的想法是:
: 先抓取每一列1~30個值為X向量,31~60個值為Y向量,
: 進行cor(X, Y, use="complete", method="pearson")運算Pearson相關係數,
: 再利用迴圈運算50萬筆資料。
: 請問先進,我應該如何開始撰寫這樣的語法呢?
: 還是我應該改變匯入資料的格式呢?
: 再麻煩各位先進指教!
: 謝謝大家~
: [環境敘述]:
:
: R version 3.2.0 (2015-04-16)
: Platform: i386-w64-mingw32/i386 (32-bit)
:
: [關鍵字]:
:
: Peearson相關係數
:
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.117.75
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1433996493.A.EEB.html
※ 編輯: andrew43 (140.128.117.75), 06/11/2015 12:23:10
推
06/11 16:11, , 1F
06/11 16:11, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章