타이밍이있는 열에 혼합 된 각 장치의 고유 식별자가있는 원시 데이터가 있습니다. 데이터를 '요약'하려면 각 행 그룹에 대한 uniqueID를 열에 첨부해야합니다. 내 루프의 일부가 위의 선전에서 제거 된 다음 텍스트에 대해 'ifelse'검사를 실행하고 고유 ID를 얻기 위해 strsplit을 실행 한 후 다음 텍스트 문자열과 마주 칠 때까지 붙여넣고 반복합니다.R : 조건부로 열 값을 바꿀 수있는 빠른 방법
그것은 작동하지만 엄청나게 느리며 많은 원시 데이터를 통해 반복해야합니다. (출력 파일의 모양을 변경하기 위해 원본 소프트웨어에 액세스 할 수 없습니다.)
포럼을 통해 읽으면 with a single variable을 (를) 대체 할 수있는 해결책을 찾았습니다. df.
예 DF : 나는 다른 텍스트 문자열을 만날 때까지 열 붙여 넣기를 작동합니다 알고 루프로 실행하여
time dist v3 v4
1: 2 10.2 ... ....
2: 3 10.2 ... ....
3: Veh: 123
4: 1 10.2 ... ....
5: 2 10.2 ... ....
6: 3 10.2 ... ....
7: Veh: 456
8: 1 10.2 ... ....
9: 2 10.2 ... ....
v <- 0001
for (m in 1:length(k2$time)) {
if(grepl('Veh', k2$time[m])) {v <- strsplit(k2$time[m], split=":")[[1]][2]} else{ k2$time[m]<-v }
}
. 원하는 결과는 다음과 같습니다.
time dist v3 v4
1: 0001 10.2 ... ....
2: 0001 10.2 ... ....
3: Veh: 123
4: 123 10.2 ... ....
5: 123 10.2 ... ....
6: 123 10.2 ... ....
7: Veh: 456
8: 456 10.2 ... ....
9: 456 10.2 ... ....
그때 내가
이 빠른 솔루션을 알고 사람이 아마도 dplyr 또는 data.frame을 사용하고 요약 할 수 있습니다 전체 data.frame 통해 실행 및 텍스트가 포함 된 행을 제거하는 또 다른 라인을 가지고
? 나는 922,000 라인의 코드를 돌파하기 전에 15 분을주고, 몇 백만을 돌파해야한다.
Stack Overflow에서 검색 조합이 부족합니다.
R-3.3.1
EDIT에 data.table-1.9.7 및 0.5.0-dplyr 사용 : 사과, 재현성 예 :
time <- c(1,2,"Veh: 123", 1:3,"Veh: 456", 1:3)
dist <- c(1:2,"",4:6,"",8:10)
v3 <- c(1:2,"",4:6,"",8:10)
k <-data.frame(time,dist,v3)
k$time <- as.character(k$time)
v <- 0001
for (m in 1:length(k$time)) {
if(grepl('Veh', k$time[m])) {v <- strsplit(k$time[m], split=":")[[1]][2] }else{ k$time[m]<-v }}
힌트' grepl()'과'strsplit()'은 둘 다 벡터화됩니다. 그것은 재현 할 수있는 예제없이 내가 할 수있는 전부입니다. –
[재현 할 수있는 예] (0120-17753) – shayaa