2016-10-17 3 views
0

요소를 계산 열 정의 : 내가 가지고 싶은나는 데이터 프레임을 가지고

xxx: 
     time  x_int 
     0.000  TRUE 
     0.001  TRUE 
     0.002  TRUE 
     0.003  FALSE 
     0.004  FALSE 
     0.005  TRUE 
     0.006  FALSE 

:

xxx: 
    time x_int n 
    0.000 TRUE 3 
    0.001 TRUE 3 
    0.002 TRUE 3 
    0.003 FALSE 2 
    0.004 FALSE 2 
    0.006 TRUE 1 
    0.007 FALSE 1 

따라서 나는 그 반대의 경우도 마찬가지 FALSE 및 전 TRUE을 계산하고자합니다.

답변

0

우리는 'x_int'에 그룹화 변수를 만들 data.table에서 rleid를 사용하고, 그것을 (:=)를 각 그룹 (.N)를 행의 GET 번호를 얻을 할당 할 수 있습니다 'n'을

library(data.table) 
setDT(xxx)[, n := .N, rleid(x_int)] 
0
기본 R에서

:

v <- rle(d$x_int)$lengths 
d$n <- rep(v, v) 

# time x_int n 
#1 0.000 TRUE 3 
#2 0.001 TRUE 3 
#3 0.002 TRUE 3 
#4 0.003 FALSE 2 
#5 0.004 FALSE 2 
#6 0.005 TRUE 1 
#7 0.006 FALSE 1 

d <- structure(list(time = c(0, 0.001, 0.002, 0.003, 0.004, 0.005, 
0.006), x_int = c(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE 
)), .Names = c("time", "x_int"), class = "data.frame", row.names = c(NA, 
-7L)) 
+0

예, 감사합니다! – memy

관련 문제