2013-08-15 5 views
0
Attribute    Time  Value 
pmEulRlcUserPacketThp 2013-04-30 12,51,34,17 
pmEulRlcUserPacketThp 2013-04-30 84,28,17,10 
pmEulRlcUserPacketThp 2013-04-30 11,43,28,15 
pmEulRlcUserPacketThp 2013-04-30 80,26,17,91 
pmEulRlcUserPacketThp 2013-04-30 10,41,25,13 
pmEulRlcUserPacketThp 2013-04-30 97,35,23,12 

회사에서 인턴쉽을하고 있습니다! 그들은 KS 테스트를하기 위해 이와 같은 데이터를 가지고 있습니다. 값 열은 값의 배열이지만 R은 문자로 읽습니다. AttributepmEulRlcUserPacketThp이고 Time2013-04-30 일 때 모든 값의 합계를 계산하려고합니다. 어떻게해야합니까?값 목록이 포함 된 데이터 프레임

Attribute 다양한시를 포함 ... 그리고 Time30-4-2013에서 30-5-2013 월간 데이터입니다. 그래서 각각 Attribute과 각 날짜에 대해 하나의 벡터를 가져야합니다. 친절하게 도와주세요 ..!

그것은 행

df = read.table(text="Attribute    Time  Value 
    pmEulRlcUserPacketThp 2013-04-30 12,51,34,17 
    pmEulRlcUserPacketThp 2013-04-30 84,28,17,10 
    pmEulRlcUserPacketThp 2013-04-30 11,43,28,15 
    pmEulRlcUserPacketThp 2013-04-30 80,26,17,91 
    pmEulRlcUserPacketThp 2013-04-30 10,41,25,13 
    pmEulRlcUserPacketThp 2013-04-30 97,35,23,12,13", 
       header = TRUE, fill = TRUE, stringsAsFactors=F) 
dfL <- concat.split.multiple(df, "Value", direction = "long") 

"Error in data.frame(..., check.names = FALSE) : 
    arguments imply differing number of rows: 6, 7" 

에 다른 벡터의 길이가 작동하지 않습니다 이것은 내가 오류입니다! 길이가 다른 벡터가 포함 된 데이터로 수행 할 수있는 작업은 무엇입니까? 다른 날짜에 대한

:
df = read.table(text="Attribute Time Value 
pmEulRlcUserPacketThp 2013-04-30 12,51,34,17 
pmEulRlcUserPacketThp 2013-04-29 84,28,17,10 
pmEulRlcUserPacketThp 2013-04-28 11,43,28,15 
pmEulRlcUserPacketThp 2013-04-27 80,26,17,91 
pmEulRlcUserPacketThp 2013-04-26 10,41,25,13 
pmEulRlcUserPacketThp 2013-04-25 97,35,23,12", 
       header = TRUE, fill = TRUE, stringsAsFactors=F) 

지금 내 데이터는 다음과 같습니다

. 나는 모든 연결은 내가 가진 데이터를 steps- 짓을 지금 이제 내가 원하는 것은 periods- 하나 개의 존재 (27 월 30 일에 두 시간 V1, V2, V3, V4의 통합과 다른 것으로 25 일입니다

> y 
       Attribute  Time V1 V2 V3 V4 
1 pmEulRlcUserPacketThp 2013-04-30 12 51 34 17 
2 pmEulRlcUserPacketThp 2013-04-29 84 28 17 10 
3 pmEulRlcUserPacketThp 2013-04-28 11 43 28 15 
4 pmEulRlcUserPacketThp 2013-04-27 80 26 17 91 
5 pmEulRlcUserPacketThp 2013-04-26 10 41 25 13 
6 pmEulRlcUserPacketThp 2013-04-25 97 35 23 12 

입니다 -26 번째). 난 거대한 데이터 n 많은 요소에 대한 실현되지 않습니다 subsetting을 사용하고 있습니다.

> y1<-y[1:4,] 
> y1 
       Attribute  Time V1 V2 V3 V4 
1 pmEulRlcUserPacketThp 2013-04-30 12 51 34 17 
2 pmEulRlcUserPacketThp 2013-04-29 84 28 17 10 
3 pmEulRlcUserPacketThp 2013-04-28 11 43 28 15 
4 pmEulRlcUserPacketThp 2013-04-27 80 26 17 91 

> y2<-y[-(1:4),] 
> y2 
       Attribute  Time V1 V2 V3 V4 
5 pmEulRlcUserPacketThp 2013-04-26 10 41 25 13 
6 pmEulRlcUserPacketThp 2013-04-25 97 35 23 12 

> z1<-aggregate(V1 ~ Attribute, y1, sum) 
> z1 
       Attribute V1 
1 pmEulRlcUserPacketThp 187 
> z2<-aggregate(V1 ~ Attribute, y2, sum) 
> z2 
       Attribute V1 
1 pmEulRlcUserPacketThp 107 

이 아니라 다른 값 (V2, V3, V4)에 대해 수행되어야하는 두 개의 상이한 시간 intervals.This 대한 V1위한 강행한다. 이것은 시간이 많이 소요됩니다. 집계를 사용하여 날짜를 선택할 수있는 방법이 있습니까?

+0

Aishwaryaa, 죄송 합니다만, 우리가 당신을 위해 더 많은 작업을 수행하도록 편집하는 것은 실제로 스택 오버플로를 사용하여 접근하는 방법이 아닙니다. 이 경우 가장 최근에 수정 한 내용은 원래 질문과 다른 *** 매우 ***입니다. 이전 버전으로 롤백하고 새로운 질문으로 후속 작업을 게시하는 것이 좋을 것입니다. 시도한 작업과 대안으로 기대하는 작업을 명확히 표시해야합니다. – A5C1D2H2I1M1N2O1R2T1

답변

0

원하는대로 가까워지고 있습니까?

df = read.table(text="Attribute    Time  Value 
    pmEulRlcUserPacketThp 2013-04-30 12,51,34,17 
    pmEulRlcUserPacketThp 2013-04-30 84,28,17,10 
    pmEulRlcUserPacketThp 2013-04-30 11,43,28,15 
    pmEulRlcUserPacketThp 2013-04-30 80,26,17,91 
    pmEulRlcUserPacketThp 2013-04-30 10,41,25,13 
    pmEulRlcUserPacketThp 2013-04-30 97,35,23,12", 
       header = TRUE, fill = TRUE, stringsAsFactors=F) 


values = data.frame(t(matrix(unlist(strsplit(df$Value, ',')), ncol = nrow(df)))) 
values = mapply(values, FUN = function(row){as.numeric(as.character(row))}) 
df = cbind(df[,1:2], values) 

aggregate(df$X1, by=list(df$Attribute, df$Time), FUN=sum) 
aggregate(df$X2, by=list(df$Attribute, df$Time), FUN=sum) 
+1

각'x'가 필요하면'aggregate (. ~ Attribute + Time, df, sum)'및'rowSums (aggregate (~ Attribute + Time, df, sum) [3 : 6])'이면 왜 너는 총액을 원했어? – A5C1D2H2I1M1N2O1R2T1

+0

도움 주셔서 감사합니다! 나는 @AnandaMahto가 언급 한 패키지가 꽤 멋지다고 생각한다. 나는 양쪽 모두를 시험해보고있다! –

+0

큰 데이터 세트를 가지고 있다면 인자를 인자로 강요하기 위해 as.numeric (as.character (factorobject)) 대신'as.numeric (levels (factorobject)) [factorobject']를 사용하는 것이 좋습니다. – geotheory

3

원래 질문을했기 때문에 질문이 많이 바뀌 었습니다. 일반적으로 좋지 않습니다.

로드 "splitstackshape"을하고 있는지 확인하십시오 그러나, 나는이 솔루션은 당신이 원하는 것 같다 솔루션을 얻기 위해 기본 R에서 "splitstackshape"와 aggregatecut에서 concat.split.multiple를 사용

... 관대 한 기분

df <- read.table(text="Attribute Time Value 
pmEulRlcUserPacketThp 2013-04-30 12,51,34,17 
pmEulRlcUserPacketThp 2013-04-29 84,28,17,10 
pmEulRlcUserPacketThp 2013-04-28 11,43,28,15 
pmEulRlcUserPacketThp 2013-04-27 80,26,17,91 
pmEulRlcUserPacketThp 2013-04-26 10,41,25,13 
pmEulRlcUserPacketThp 2013-04-25 97,35,23,12", 
header = TRUE, fill = TRUE, stringsAsFactors = FALSE) 
0 : 여기에
library(splitstackshape) 
## Make sure you're running at least version 1.2.0 
packageVersion("splitstackshape") 
# [1] ‘1.2.0’ 

는 샘플 데이터입니다 : 적어도 (이 게시시 가장 최근) 버전 1.2.0입니다

먼저 "값"열을 나눕니다.

y <- concat.split.multiple(df, "Value") 

다음으로 사용할 기간에 대한 "간격"열을 만드십시오.

y$interval <- cut(as.Date(y$Time), breaks=c(as.Date(
    c("2013-04-25", "2013-04-27", "2013-04-30"))), include.lowest=TRUE) 

마지막으로 aggregate 데이터. . ~ 표기법을 사용하면 모든 비 ID 열을 한꺼번에 집계 할 수 있습니다.참고로

aggregate(. ~ Attribute + interval, y[-2], sum) 
#    Attribute interval Value_1 Value_2 Value_3 Value_4 
# 1 pmEulRlcUserPacketThp 2013-04-25  107  76  48  25 
# 2 pmEulRlcUserPacketThp 2013-04-27  187  148  96  133 

: 당신이 버전 1.2.0을 사용하는 경우 , 당신은 더 이상 당신이 게시물에 언급 된 오류가 없습니다. 이 오류는 read.table이 생성 할 열 수를 결정하는 데 기인합니다. 첫 번째 5 행만 읽습니다. 문제가 발생한 예제는 여섯 번째 행에 긴 행이 있습니다. 이 문제를 극복하기 위해 count.fields을 구현했습니다. 내 관심을 가져 주셔서 감사합니다.

+2

* 이름을 바꿀 때까지이 패키지를 사용하여 제공 한 모든 대답을 * upvote해야합니다. * shapeshifter * ... :-)하지만 그렇게 할 수는 없습니다. +1 –

+0

고마워요! 이 패키지는 매우 멋집니다! 제 데이터가 엄청납니다. 나는 이것으로 놀기 시작했다! 어떤 어려움을 발견하면 게시 할 것입니다! –

+0

@AnandaMahto 결과 형태의 분할 벡터를 원래 형식으로 가져 오는 옵션이 있습니까? 내 말은, 이제는 매일 매일의 각 개별 값과 각 속성의 합계를가집니다. 원래 벡터의 형태로 결과를 원합니다. de.concatenate 같은 것이 있습니까? –

관련 문제