1
값이 1, 2 또는 3 (및 일부 NA) 인 거대한 행렬이 있습니다. 행렬이 n × m이면 원래 행렬의 각 값이 새로운 행렬의 3 개 항목에 해당하는 n × 3m으로 다시 코딩해야합니다. 값이 오래된 행렬에서 x이면 x 번째 항목은 1이되고 다른 두 개는 0이됩니다 (NA가 모두 0 인 경우).R에 거대한 행렬을 재 코딩
1, 3, NA, 1
는
1 0 0 0 0 1 0 0 0 1 0 0
에 레코딩 즉
1 = 1 0 0
3 = 0 0 1
NA = 0 0 0
1 = 1 0 0
매트릭스가 거대하기 때문에 R에서이 작업을 효율적으로 수행해야합니다. 가장 효율적인 방법은 무엇입니까? 행렬은 data.table에 있습니다.
'Matrix' 패키지는 스파 스 매트릭스를 지원합니다.이 경우 유용합니다. – nograpes
RAM과 CPU (최소한)에 관련 될 수 있으므로 "효율적인"이란 의미를 더 분명하게 표현해야합니다. 행렬을 단일 열 data.tables로 분해하고'foreach' 패키지를 사용하여 사용 가능한 모든 코어를 사용하는 것이 훨씬 빠를 수도 있습니다. ** m ** 및 ** n **의 상대 크기에 따라 다릅니다. – Peter