R重新组织数据帧

R重新组织数据帧,r,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.23

我是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
     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
我喜欢将此数据帧转换为类似的内容,以便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
  • 将提取日期与小时1相结合(例如,如果标题显示小时1,则提取日期应为“01/01/2012 01:00”

  • 将metrictype改为header(header应该是:将每小时的数据放在列中而不是行中)

  • 有人能帮我吗

    更新=======

    在玩熔化和铸造时,我感觉我已经非常接近了。我执行了以下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)
    

    我现在面临的问题是,我必须将日期和变量字段结合起来。例如,第一行日期字段应该是01/29/2012 01:00,第二行,01/29/2012 02:00等等,如果有人能帮我,那就太棒了。

    首先使用类似于
    gsub
    的东西:

    yy$variable <- as.integer(gsub('Hour', '', yy$variable))
    

    yy$variable看起来你已经搞定了melt/cast,这本身并不是什么了不起的事。下面关于
    gsub
    的答案看起来不错。你还应该浏览一下
    lubridate
    包,这使得处理日期/时间变量变得容易多了。试试这个:
    as.POSIXct(粘贴(yy$date,yy$variable),format=“%m/%d/%Y Hour%H”)
    。是啊!我忘了在
    :00:00
    周围有一个关键的引号。我的答案现在已经修正了。
    “:00:00”
    yy$Date <- as.Date(yy$Date, format='%m/%d/%Y')
    
    yy$date_time <- as.POSIXct(paste(yy$Date, yy$variable))