2012-03-09 51 views
-1

列之間我有三列,其看起來像這樣的數據幀:設備,帶寬,延遲中的R

的裝置可以是PC或路由器。對於他們中的每一個人,我每2分鐘收集一次測量值,每個設備每小時的數量爲30行。我的目標是將每臺PC的帶寬的30個指標與路由器的那些(帶寬或延遲)關聯起來,並通過相關性評分對設備列表進行排序,以確定最可能的違規者。

我是R新手,但懷疑這應該相對容易。我感謝您的幫助。

+1

COR(數據幀)看看這個[參考卡](http://cran.r-project.org/doc/contrib/Short-refcard.pdf),以幫助您開始R. – 2012-03-09 04:34:10

+0

從我所瞭解的問題來看,'cor(dataframe)'不是他們想要的(由於設備列,這將產生「'x'必須是數字」錯誤)。我認爲OP要爲'df $ Device'中不是路由器的每個'GROUP_NAME'計算'cor(df $ Bandwidth [df $ Device == GROUP_NAME],df $ Bandwidth [df $ Device = Router)''。 – 2012-03-09 04:43:39

回答

2

在計算相關性之前,您可能需要將數據(例如dcast, )變換爲 。

# Sample data 
n <- 20 
k <- 5 
devices <- data.frame(
    Time  = rep(1:n,k), # Make sure there is a primary key 
    Device = rep(LETTERS[1:k], each=n), 
    Bandwidth = rlnorm(k*n), 
    Delay  = rlnorm(k*n) 
) 

# Compute the correlations. I assume that "A" is the router. 
library(reshape2) 
delays <- dcast(devices, Time ~ Device, value.var="Delay" )[,-1] 
bandwidth <- dcast(devices, Time ~ Device, value.var="Bandwidth")[,-1] 
cor(delays, delays$A ) 
cor(bandwidth, bandwidth$A)