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 |
---|---|---|---|
1114 | 성향점수 맞추기 [3] | alse | 2016.05.25 |
1113 | 아래에 올렸었는데요,, 5Y overall survival 구하는 법이요. [2] | 난둥 | 2016.05.26 |
1112 | 로지스틱 회귀 분석에서.. [1] | 최00 | 2016.05.27 |
1111 | 기본표를 만드는데 file이 이상하게 읽히는 것 같습니다. | 매일이5월 | 2016.06.02 |
1110 | 파일 불러오기 에러 [2] | 매일이5월 | 2016.06.02 |
1109 | 파일 불러오기 오류 [2] | 매일이5월 | 2016.06.02 |
1108 | RPubs에 있는 ROC curve analysis by cardiomoon [2] | hawk1227 | 2016.06.02 |
1107 | R 그래프 옮기기 [2] | hawk1227 | 2016.06.03 |
1106 | 생존분석 그래프 x축 시간 [3] | alse | 2016.06.07 |
1105 | 자료업로드에러 [3] | dejavu730 | 2016.06.07 |
1104 | 학생강의 project1 | cardiomoon | 2016.06.07 |
1103 | 결측치 처리에 대한 질문입니다. [2] | 매일이5월 | 2016.06.07 |
1102 | IBM의 R 컨소시엄 가입 | Ben | 2016.06.08 |
1101 | 서버 접속이 안됩니다 [2] | kim | 2016.06.08 |
1100 | binary data 군집분석 [2] | 노가리 | 2016.06.08 |
1099 | 생존 분석시 문제 [3] | selteen | 2016.06.09 |
1098 | 생존 분석을 하는데 질문이 있어 게시판에 글을 올립니다. [1] | namuhanayeyo | 2016.06.11 |
1097 | 독립(설명)변수 비정규 분포시. logistic regression 문의입니다. [1] | 매일이5월 | 2016.06.16 |
1096 | Simple linear regression 에서 설명변수의 특성 [3] | 매일이5월 | 2016.06.16 |
1095 | Rstudio 에러 문제 [2] | 화모기 | 2016.06.16 |