2016-09-25 68 views
-1

我處於需要找到兩個變量cor(dataframe$x,dataframe$y)之間的關聯的情況,其中x, y是列名稱,而dataframe是數據幀。我的數據框中的一列是指示器功能(0和1)。在R中選擇特定元素爲cor()

我想知道如何比較兩個獨立組(0和1)的x值和y的對應值。我是R新手,所以我想知道是否在cor()函數中內置了函數,或者如果我必須重新構造一個數據幀/數組,並使用x'sy's來查找單獨組的相關性。

想這也導致了另一個問題(這我GOOGLE了,這不是很明確的給我還):就是用在這些功能中的R矢量,陣列和數據幀之間的差(即cor()t.test(),等等。)?

+0

你可能意味着' dataframe $ x'和'dataframe $ y' – Pieter

+0

哦,沒錯 - 那裏有個錯字。是的。除此之外,你知道我可以如何解決我的問題嗎? – wowdavers

回答

1

您可以計算由指標列指定的行子集的相關性。要選擇子集,使用dataframe[logical_index,]其中logical_index是布爾值的向量(在R中稱爲邏輯)。要做到這一點,你應該將指標轉換爲布爾值。

logical_index <- as.logical(dataframe$indicator) 
cor(dataframe[logical_index,]$x, dataframe[logical_index,]$y) 
cor(dataframe[!logical_index,]$x, dataframe[!logical_index,]$y) 

載體,矩陣,陣列,列表和數據幀都不同的原始類型R.一個清晰和相對易介紹由哈德利在高級式給出:R上的差異:http://adv-r.had.co.nz/Data-structures.html

+0

完成 - 我已將'indicator'轉換爲TRUE和FALSE值。只需確認一下,你列出的'cor()'代碼給出了兩次「x」和「y」的相關性:一次僅用於**「真」值,一次僅用於** **「假」值。 – wowdavers

+0

這是正確的。第一次調用給出'indicator'列爲'TRUE'的行的相關性。第二次調用給出'indicator'列爲'FALSE'的行的相關性。 – Pieter

+0

太棒了 - 非常感謝!當我進行調用時,我沒有得到像我通常所獲得的輸出(我添加到原始文章的輸出)。任何理由? – wowdavers