거대한 데이터 프레임 (180000 x 400)을 사용하여 훨씬 더 작은 다른 데이터 프레임을 계산하려고합니다.다른 데이터 프레임을 기반으로 새 데이터 프레임을 만듭니다.
나는 다음과 같은 dataframe
df1=data.frame(LOCAT=c(1,2,3,4,5,6),START=c(120,345,765,1045,1347,1879),END=c(150,390,802,1120,1436,1935),CODE1=c(1,1,0,1,0,0),CODE2=c(1,0,0,0,-1,-1))
df1
LOCAT START END CODE1 CODE2
1 1 120 150 1 1
2 2 345 390 1 0
3 3 765 802 0 0
4 4 1045 1120 1 0
5 5 1347 1436 0 -1
6 6 1879 1935 0 -1
이 샘플 dataframe입니다 있습니다. 행은 1800 년까지 계속되고 열은 400을 넘습니다. 각 행의 크기가 "1"또는 "-1"을 계속 표시하고 위치를 반환하는 각 열을 기반으로 새 데이터 프레임을 만드는 것이 필요합니다. 크기와 가치. 코드 1이 같은
뭔가 :
LOCAT SIZE VALUE
1 1 to 2 270 POS
2 4 to 4 75 POS
그리고 CODE2이 같은
:LOCAT SIZE VALUE
1 1 to 1 30 POS
2 5 to 6 588 NEG
불행하게도 난 아직이 작업을 수행하는 방법을 알아낼하지 않았다. 나는 이것을 자동으로 수행하는 함수를 개발하기 위해 몇 줄의 코드를 시도해 왔지만 길을 잃거나 루프에 갇히기 시작했다.
도움을 주시면 감사하겠습니다. 미리 감사드립니다.
Whoaaaaa ... 이것은 매우 쉽습니다. 여전히 sss 함수를 더 잘 살펴볼 필요가 있지만 결과는 훌륭하며 동일한 데이터 프레임에 모든 코드를 포함하는 것이 편리합니다. 큰 데이터 프레임에 모든 것을 적용하려고 노력할 것이며 문제가 발생할 경우 알려 드리겠습니다. 다시 한번 감사드립니다. – JMarchante
문제가 없습니다! 함수 sss에서 sssX를 반환하는 대답을 편집했음을 유의하십시오. 그렇지 않으면'sss (test4 [test4 [, "Code"] == 1,))'을 (를) 수행하면 아무 것도 반환하지 않습니다. 최종 제품은 동일합니다. – rbatt