我有一个包含三列的数据框,如下所示:设备,带宽,延迟
设备可以是PC或路由器。对于它们中的每一个,我每2分钟收集一次测量值,每个设备每小时达30行。我的目标是将每台PC的 Bandwidth 的30个指标与路由器的那些(带宽或延迟)相关联,并按相关性得分对设备列表进行排序,以识别最可能的罪犯。
我是R的新手,但怀疑这应该相对容易。感谢您的帮助。
答案 0 :(得分: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 )