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 |
---|---|---|---|
1253 | logistic regression 명령어 문의드립니다. [2] | 로렌쵸메디치 | 2023.11.22 |
1252 | spss 파일 불러오기. [1] | 통계린 | 2023.11.22 |
1251 | PSM 매칭변수 숫자 관련 문의입니다. [1] | 오하나 | 2023.11.22 |
1250 | Multiple imputation 관련 질문 및, age adjusted incidence rate 관련 질문을 드립니다. | YSKBH | 2023.11.15 |
1249 | semMediation 설치 재문의드립니다 [3] | 마술샘 | 2023.11.11 |
1248 | 안녕하세요. 정회원 문의 [1] | lionking | 2023.11.06 |
1247 | PSM 관련 질문드립니다. | dr. | 2023.11.05 |
1246 | ggplot [1] | 통계린 | 2023.10.30 |
1245 | 정회원 [1] | 통계린 | 2023.10.29 |
1244 | PSM 관련 질문 드립니다. [2] | 로렌쵸메디치 | 2023.10.25 |
1243 | forest plot 그림이 전체가 다 나오지 않습니다. [1] | joyguni | 2023.10.08 |
1242 | PSM caliper default 값 관련 문의드립니다. [1] | Ooppps | 2023.10.05 |
1241 | reliability test tool,,, [1] | FAdavid | 2023.10.05 |
1240 | 정회원 가입 확인 요청드립니다. [1] | osman | 2023.10.03 |
1239 | 생존분석, cox 회귀 관련 기초적인 질문 입니다. | 만니톨 | 2023.09.27 |
1238 | Twang-mnps에서 매칭된 데이터를 추출하는 방법 좀 알려주세요 | Dorocy | 2023.09.26 |
1237 | 영수증 발급을 부탁드립니다. [1] | 규빈어멈 | 2023.09.26 |
1236 | 정회원 확인 [2] | lionking | 2023.09.24 |
1235 | autoReg 에러 문의드립니다 [1] | 소소 | 2023.09.23 |
1234 | 안녕하세요 에러 관련 문의드립니다 [1] | 화이팅 | 2023.09.19 |