데이터는
2단 3단 4단 5단 6단 7단 8단 9단
x 1 2 3 4 5 6 7 8 9
x 2 4 6 8 10 12 14 16 18
x 3 6 9 12 15 18 21 24 27
x 4 8 12 16 20 24 28 32 36
x 5 10 15 20 25 30 35 40 45
x 6 12 18 24 30 36 42 48 54
x 7 14 21 28 35 42 49 56 63
x 8 16 24 32 40 48 56 64 72
x 9 18 27 36 45 54 63 72 81로 이뤄져있습니다.
이 방법을 사용해 3의 배 5의 배인 경우 0으로 출력을 하려는데 이상하게 결과가 기존 데이터로 뜨더군요.
m1 %% 3 ==0 || m1 %% 5==0; m1
m1[m1 %% 3 == 0 || m1 %% 5 == 0] = 0; m1
이렇게 코드를 작성했었습니다.
Comment 6
-
cardiomoon
2020.11.03 10:01
-
R입문기초
2020.11.03 11:58
> str(m1)num [1:9, 1:8] 2 4 6 8 10 12 14 16 18 3 ...- attr(*, "dimnames")=List of 2..$ : chr [1:9] "x 1" "x 2" "x 3" "x 4" .....$ : chr [1:8] "2단" "3단" "4단" "5단" ...2단 3단 4단 5단 6단 7단 8단 9단x 1 2 3 4 5 6 7 8 9x 2 4 6 8 10 12 14 16 18x 3 6 9 12 15 18 21 24 27x 4 8 12 16 20 24 28 32 36x 5 10 15 20 25 30 35 40 45x 6 12 18 24 30 36 42 48 54x 7 14 21 28 35 42 49 56 63x 8 16 24 32 40 48 56 64 72x 9 18 27 36 45 54 63 72 81이렇게 이뤄져있습니다 -
cardiomoon
2020.11.03 14:40
> m1<-matrix(c(2:9,2*(2:9),3*(2:9)),ncol=8,byrow=TRUE)> m1[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8][1,] 2 3 4 5 6 7 8 9[2,] 4 6 8 10 12 14 16 18[3,] 6 9 12 15 18 21 24 27> m1[m1 %%3 * m1%%5 ==0]=0> m1[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8][1,] 2 0 4 0 0 7 8 0[2,] 4 0 8 0 0 14 16 0[3,] 0 0 0 0 0 0 0 0 -
R입문기초
2020.11.03 20:12
* 가 OR연산자인가요? OR 연산자는 || 아닌가요?
+ m1[m1 %% 3 == 0 | m1 %% 5 == 0] = 0; 으로 작성하니 결과가 정상적으로 출력됩니다.
그런데 m1 %% 3 ==0 | m1 %% 5==0; m1 는 왜 TRUE/FALSE 마스크로 출력이 안되고 기존의 m1으로 출력될까요?
-> 뒤에 ;m1을 제거 하니 TRUE/FALSE 마스크로 출력되더군요! 감사합니다 :)
-
cardiomoon
2020.11.03 22:54
A와 B 둘중에 하나가 0이면 A*B 가 0이 됩니다. 즉 A==0 OR B==0 을 A*B==0으로 쓴 것입니다.
-
cardiomoon
2020.11.03 14:41
묻고 답하기 게시판의 글은 지우시지 말기 바랍니다.
str(m1) 의 결과를 보여주시겠어요?