2012-02-01 4 views
1

저는 R의 초보자입니다. 나는 reshape, melt, cast 함수로 할 수 있어야한다고 생각합니다. 나는 약간의 독서를했지만 어떻게하는지에 대해 알아낼 수 없다.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 
    : 그 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 
    

    내가, 이런 일이 데이터 프레임을 변환하고자 :

    는이 같은 데이터 프레임을 가지고

  1. ExtractedDate와 Hour1을 결합합니다 (예 : 제목에 Hour1이있는 경우, Extracted Date는 "01/01/2012 01:00"이어야합니다)

  2. 헤더에 metrictype을 설정합니다 (헤더는 행이 아닌 열에 시간별 데이터를 넣어야합니다.

누군가 나를 도와 줄 수 있습니까?

업데이트 =======

나는 것은 내가 아주 가까운 얻고, 용융 및 주조와 함께 연주.

 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 

지금 직면하고 문제는 내가 날짜 및 변수 필드를 결합해야한다는 것입니다 :

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) 

내 출력은 다음과 같습니다 : 나는이 3 개 명령을했다. 예를 들어 첫 번째 행 날짜 필드는 01/29/2012 01:00, 두 번째 행, 01/29/2012 02:00이어야합니다. 누군가 나를 도와 줄 수 있다면 정말 좋을 것입니다. 첫째 gsub 같은

+0

마치 녹여서/캐스팅 한 것으로 보입니다. 'gsub'에 대한 아래의 답변은 멋지게 보입니다. 'lubridate' 패키지를 살펴 봐야합니다.이 패키지는 날짜/시간 변수를 손쉽게 조작 할 수있게 해줍니다. –

+0

이것을 시도하십시오 :'as.POSIXct (paste (yy $ Date, yy $ variable), format = "% m/% d/% Y Hour % H")'. –

답변

3

사용 무언가 :

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

POSIX의 시간 형식으로 변환합니다 :

전년 동기 대비 $ 변수 < - 붙여 넣기 (전년 동기 대비 $ 변수 ': 00 : 00'9 월 = '')

는 날짜로 날짜 변환 :

yy$Date <- as.Date(yy$Date, format='%m/%d/%Y') 

N 함께 매쉬 :

yy$date_time <- as.POSIXct(paste(yy$Date, yy$variable)) 

을 나는 동물원 패키지를 사용하여 꽤 방법이 생각,하지만 난 전혀 잘 모른다.

+0

이렇게하면이 오류가 발생합니다. –

+0

예! '00 : 00'에 대한 중요한 인용문을 잊어 버렸습니다. 그 대답은 지금 정답입니다. '': 00 : 00 "' – Justin

+0

정말 고마워요, 정말 좋았어요. –