큰 데이터 프레임 (40000 개의 변수를 40000 개 관측)을 가지고 있으며 모든 점의 열 범위에 대해 제품과 비슷한 점으로 작업하고 싶습니다. 이것이 내가 구현 한 방법입니다 :R- ddply를 사용하여 데이터 프레임의 열 하위 집합에서 작업
matrixattempt <- as.matrix(dframe)
takerow <- function(k) {as.vector(matrixattempt[k,])}
takedot0 <- function(k) {sqrt(sum(data0averrow * takerow(k)[2:785]))}
for (k in 1:40000){
print(k)
dframe$dot0aver[k]<-takedot0(k)
}
인쇄물은 무슨 일이 일어나고 있는지 추적하기위한 것입니다. data0averrow은 사전 정의 된 takerow (k) [2 : 785]과 동일한 크기의 숫자 벡터입니다.
이 테스트는 실행 중이며 올바르게 실행중인 몇 가지 테스트에서 발생하지만 매우 느립니다.
열의 하위 집합에 대해 내적을 검색했지만 this question이 발견되었지만 설정에 적용하는 방법을 파악할 수 없었습니다. ddply는 더 빨리 작동해야하는 것처럼 들리지만 (비록 내가 분할하고 싶지 않고 참조 된 질문자와 동일한 정의 -id 트릭을 사용해야 만합니다). 모든 통찰력/힌트? 결과에
이러한 답 중 어느 것도 작동하지 않는다면 작은 테스트 케이스에 문제가 생길 수 있습니다. 예를 들어 8 x 10 매트릭스입니까? –
@ Arun의 응답이 잘 작동했습니다. 고맙습니다. – zdilli