df <- data.frame(matrix(1:9, 3, 3))
X1 X2 X3
1 1 4 7
2 2 5 8
3 3 6 9
이러한 데이터 프레임이 있다고 할때 새로운 컬럼에 각 인자간의 곱한 값을 자동으로 추가하고 싶습니다.
현재 df 에서 변수가 3개이므로 가능한 곱 조합은 ① X1*X2 ②X1*X3 ③X2*X3 로 세개가 나올 수 있는데, 저 세개의 값들이 새로운 세개의 컬럼에 추가하고 싶습니다.
결과를 본다면 아래와 같겠습니다.
X1 X2 X3 New1 New2 New3
1 1 4 7 4 7 28
2 2 5 8 10 16 40
3 3 6 9 18 27 54
for loop를 사용해서 해보고는 있는데 쉽지가 않네요.. 도와주시면 상당히 감사하겠습니다.
Comment 2
-
cardiomoon
2018.01.30 16:36
> df <- data.frame(matrix(1:27, 3, 9))> dfX1 X2 X3 X4 X5 X6 X7 X8 X91 1 4 7 10 13 16 19 22 252 2 5 8 11 14 17 20 23 263 3 6 9 12 15 18 21 24 27> x=combn(colnames(df),2)> x[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15][1,] "X1" "X1" "X1" "X1" "X1" "X1" "X1" "X1" "X2" "X2" "X2" "X2" "X2" "X2" "X2"[2,] "X2" "X3" "X4" "X5" "X6" "X7" "X8" "X9" "X3" "X4" "X5" "X6" "X7" "X8" "X9"[,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27] [,28][1,] "X3" "X3" "X3" "X3" "X3" "X3" "X4" "X4" "X4" "X4" "X4" "X5" "X5"[2,] "X4" "X5" "X6" "X7" "X8" "X9" "X5" "X6" "X7" "X8" "X9" "X6" "X7"[,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36][1,] "X5" "X5" "X6" "X6" "X6" "X7" "X7" "X8"[2,] "X8" "X9" "X7" "X8" "X9" "X8" "X9" "X9"> for(i in 1:ncol(x)){+ newname=stringr::str_c(x[,i],collapse="")+ df[[newname]]=df[[x[1,i]]]*df[[x[2,i]]]+ }> dfX1 X2 X3 X4 X5 X6 X7 X8 X9 X1X2 X1X3 X1X4 X1X5 X1X6 X1X7 X1X8 X1X9 X2X3 X2X4 X2X51 1 4 7 10 13 16 19 22 25 4 7 10 13 16 19 22 25 28 40 522 2 5 8 11 14 17 20 23 26 10 16 22 28 34 40 46 52 40 55 703 3 6 9 12 15 18 21 24 27 18 27 36 45 54 63 72 81 54 72 90X2X6 X2X7 X2X8 X2X9 X3X4 X3X5 X3X6 X3X7 X3X8 X3X9 X4X5 X4X6 X4X7 X4X8 X4X9 X5X6 X5X71 64 76 88 100 70 91 112 133 154 175 130 160 190 220 250 208 2472 85 100 115 130 88 112 136 160 184 208 154 187 220 253 286 238 2803 108 126 144 162 108 135 162 189 216 243 180 216 252 288 324 270 315X5X8 X5X9 X6X7 X6X8 X6X9 X7X8 X7X9 X8X91 286 325 304 352 400 418 475 5502 322 364 340 391 442 460 520 5983 360 405 378 432 486 504 567 648 -
kenny
2018.02.01 10:40
감사합니다 교수님. 상당한 도움이 되었습니다.
No. | Subject | Author | Date |
---|---|---|---|
1054 | 기초적인 질문이지만 .. 여쭤봅니다. [2] | 나현둥 | 2021.12.13 |
1053 | 통계와 관련한 기초적인 질문 드립니다.. [2] | 감사합니다 | 2021.12.10 |
1052 | 메타분석 해석 문의 [2] | 루아로 | 2021.12.07 |
1051 | 초보라 질문드립니다 ㅜ [2] | 쵸쿄쵸쿄 | 2021.12.06 |
1050 | ㅠㅠㅠ 초보 질문입니다 [1] | 만고 | 2021.11.26 |
1049 | 라벨붙이기가 안됩니다 [1] | 찬미맘 | 2021.11.22 |
1048 | moonBook ANOVA 질문드립니다. [1] | 타쿠 | 2021.11.20 |
1047 | 3원 분할표? 에서 모델 만드는법 | 플랫슬립 | 2021.11.20 |
1046 | [회귀분석 초급 질문] [1] | 서빱스 | 2021.11.14 |
1045 | [ANOVA 분석 질문] [1] | 서빱스 | 2021.11.14 |
1044 | 대조군1과 치료군2,3,4 의 PSM 에 관해서 질문있습니다. [4] | yessul | 2021.11.11 |
1043 | 서버접속이 안됩니다. Reload [2] | silkywater | 2021.11.11 |
1042 | 메타분석 실행이 안됩니다. [1] | 애플K | 2021.11.08 |
1041 | pair plot 관련하여 질문드립니다. | ulysses11 | 2021.10.29 |
1040 | 메타분석 결과파일 다운로드 하려면 [1] | mono | 2021.10.23 |
1039 | 기본 baseline character table문의드립니다. [1] | ulysses11 | 2021.10.22 |
1038 | 이 error는 뭐가 문제인 걸까요 [1] | CSJU | 2021.10.19 |
1037 | logistic regression에서 p>0.05인 변수의 OR, p 값... | 브이콘65 | 2021.10.14 |
1036 | R 문제가 도저히 안풀려요.. [1] | 자하연미필 | 2021.10.09 |
1035 | 구조방정식에서 종속변수가 0,1로 코딩된 데이터 사용이 가능한가요? [1] | 순수엄마 | 2021.10.08 |