apply
함수 집합 중 하나를 사용하여 일부 계산을 수행하고 싶습니다.대칭 행렬에 R 함수 적용
우선, I는 두 행렬 mat1
및 mat2
가지고
mat1
:
a b c
1 NA NA NA
2 1 1 1
3 1 1 NA
4 NA 1 NA
mat2
:
a b c
a 1.0 0.2 0.3
b -0.7 1.0 0.8
c -0.1 -0.3 1.0
mat2
여기 무관 함수를 사용 mat1
을 사용하여 계산된다 본질적으로 나는 가중치를 적용하고 싶다. g 기능을 mat1
으로 설정하면 데이터가 적어서 정확도가 떨어지는 경우 mat2
의 결과에 불이익을줍니다.
그래서 이것을 달성하려면 x,y
에 mat2
을 입력하고 mat1
의 두 열의 쌍 완전성을 계산합니다. 예를 들어
: mat2["a","b"]
또는 mat2["b","a"]
은 (동일 함) * (a
의 mat1
및 b
의 전체 행/a
의 mat1
및 b
총 행)을 원래 값이 될 것이다.
정말 궁금한 점은 모든 열 (더블 루프)마다 모든 열을 반복하는 행렬에 함수를 적용하여 이것을 가중치 행렬에 저장하여 다른 행렬에 곱하는 방법입니다.
나는 이미 같은 zoo
패키지에서 rollapply
을 사용하여 두 행을 비교할 수 있습니다
rowSums(rollapply(is.na(t(mat1)), 2, function(x) !any(x)))
를 내가 얻을 :
[1] 2 1
을로, A와 B를 비교, 2 행은 완전하고 비교 B에서 그리고 c, 1 행이 완료되었습니다. 그렇다면 어떻게 a를 b, a와 c, b를 c와 비교할 수 있습니까?
감사합니다.
감사합니다. 정확하게 내가 찾고 있던 것이 었습니다! –