나는 R에 대해 처음 이라며 일반적으로 초보 프로그래머라고 생각한다고 말하며 시작합니다. 그래서 내가하는 일을 알고 있다고 가정하지 마십시오.특정 레코드에 대해서만 행렬 검색하기
필자는 대략 30 만 x 14 크기의 큰 매트릭스를 가지고 있습니다. 본질적으로 15 분짜리 데이터의 20 년 데이터 세트입니다. 그러나 필자는 REC.TYPE이라는 이름의 열에 "SAO"또는 "FL-15"라는 문자열이있는 행만 필요합니다.
대단히 비효율적 인 해결책은 행별로 행렬을 검색하고 REC.TYPE 열을 테스트하여 필자의 기준과 일치하지 않는 행을 삭제하는 것이 었습니다. 기본적으로 ...
j <- 1
for (i in 1:nrow(dataset)) {
if(dataset$REC.TYPE[j] != "SAO " && dataset$RECTYPE[j] != "FL-15") {
dataset <- dataset[-j,] }
else {
j <- j+1 }
}
내 코드는 시간에 매트릭스의 약 10 %를 얻을보고 모든 행과 감속 후 ... 난 단지 기록을 당겨의보다 효율적인 방법이있을 파악 특히 다른 8 개의 데이터 세트를 위해 이것을 반복해야 할 때 특히 필요합니다.
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
당신이 작은 재현 가능한 예제를 제공하면 귀하의 질문은 훨씬 더 의미있을 것입니다. 지금 우리는'dataset'이 무엇인지 추측해야합니다. 이렇게하면 질문이 훨씬 더 현지화되어 미래의 검색 사용자에게 도움이되지 않습니다. –
* 실제로 당신을 죽이는 것은 당신이 항상 데이터 세트를 다시 쓰고 있다는 사실입니다. 그렇게하지 마! –