我是R的新手,我认为我需要做的是重塑,融化和强制转换功能。我做了一些阅读,但无法弄清楚如何去做。R重组数据帧
我有这样一个数据帧:
)
server1, 01/01/2012, Memory, 27.200000, 27.490000, 28.560000, 29.300000
server1, 01/01/2012, disk , 2.330000, 22.380000, 7.580000, 2.440000
server1, 01/01/2012, CPU 0.470000, 36.500000, 12.230000, 0.350000
server1, 01/01/2012, interface 2.330000, 22.380000, 7.580000, 2.440000
我喜欢这个数据帧转换成这样的事情,从而使R能够容易地读取和图表这样的数据:
server1, 01/01/2012:01:00, 27.200000, 2.330000,0.470000, 2.330000
server1, 01/01/2012:02:00, 27.49, 22.38, 36.50, 22.38
server1, 01/01/2012:03:00, 28.56, 7.58, 12.23, 7.58
server1, 01/01/2012:04:00, 29.30, 2.44, 0.35, 2.44
将ExtractedDate与Hour1结合在一起(例如,如果标题为Hour1,则Existing Date应为“01/01/2012 01:00”
将metrictype转为标题(标题应该是:将小时数据放在列中而不是行中。
有人可以帮助我吗?
更新=======
熔体和投打,我的事情,我已经非常接近。我做这3个命令:
1. x <- data.frame(read.table("out.txt", sep=",", header=T))
2. y <- melt(x, id=c("Hostname", "Date", "Met"))
3. yy <- cast(y, Hostname + Date + variable ~ Mete)
我的输出是这样的:
Hostname
1 server1 01/29/2012 Hour1 0.72 2.33 23.76
2 server1 01/29/2012 Hour2 2.38 2.86 23.82
3 server1 01/29/2012 Hour3 9.59 6.25 24.85
4 server1 01/29/2012 Hour4 31.09 18.41 25.87
5 server1 01/29/2012 Hour5 0.42 1.92 24.24
6 server1 01/29/2012 Hour6 1.79 2.65 24.31
我现在面临的问题是,我有日期和可变场结合起来。例如,第一行的日期字段应该是2012年1月29日01:00,第二行,2012年1月29日02:00等等,如果有人可以帮助我,这将是非常棒的。
看起来像你已经融化/投出了,本身并不意味着壮举。下面关于'gsub'的回答看起来不错。你也应该看看'lubridate'包,这使得日期/时间变量变得更容易。 – 2012-02-01 23:18:53
试试这个:'as.POSIXct(paste(yy $ Date,yy $ variable),format =“%m /%d /%Y Hour%H”)'。 – 2012-02-01 23:47:13