我有一個data.frame,我想計算相關係數使用一列對其他列(也有一些非數字列在框架中)。如何使用ddply關聯多列?
ddply(Banks,.(brand_id,standard.quarter),function(x) { cor(BLY11,x) })
# Error in cor(BLY11, x) : 'y' must be numeric
我對is.numeric(x)的測試
ddply(Banks,.(brand_id,standard.quarter),function(x) { if is.numeric(x) cor(BLY11,x) else 0 })
但每次失敗的比較和返回0,並返回只有一列,彷彿它纔會被調用一次。傳遞給函數的是什麼?剛剛來到R,我認爲這是我失蹤的根本。
感謝
基本上和我的答案一樣,用'sed s/d/longley/ yours' ;) - 除了我現在看到,我不需要明確地轉換爲矩陣。謝謝。 –
太棒了!如此接近,ddply(Banks,。(brand_id,standard.quarter),function(x){cor(x $ BLY11,x [,sapply(x,is.numeric)])}) - 讓我相關,但是我失去了專欄名稱。他們都是V1 ... V167。如何最好地獲得原始列名稱? – LCricket
@LCricket將'cor(...)'包裝在'as.data.frame()'中,強制你的函數返回一個data.frame,而不是讓'plyr'將它強制爲一個。 – Justin