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 |
---|---|---|---|
1194 | PSM 시 범주형 변수가 총 10가지 일 때 어떻게 돌려야 하는지요 [1] | 긍정적인마음가짐 | 2023.05.06 |
1193 | 첫번째 행을 라벨로 사용 버튼 클릭시 에러 문의 [3] | 수담이 | 2023.05.04 |
1192 | 안녕하세요? web-R table 그리고 관련하여 문의드립니다. [4] | mkw7654 | 2023.05.02 |
1191 | 메타분석 U3 그래프 관련 문의드립니다 | 화이팅 | 2023.05.02 |
1190 | 교수님 안녕하세요~~ | 메시12 | 2023.04.29 |
1189 | 연속형 변수인데 범주형으로 인지됩니다. [2] | shararaku | 2023.04.28 |
1188 | 통계마당 [2] | ejo | 2023.04.27 |
1187 | moonBook 오류 관련 재문의드립니다. [1] | holyhyun | 2023.04.24 |
1186 | moonBook 사용시 오류메시지로 문의드립니다. [1] | holyhyun | 2023.04.24 |
1185 | 에러 문의 [2] | 화이팅 | 2023.04.19 |
1184 | Cox regression 에 대한 문의입니다. [2] | saga | 2023.04.18 |
1183 | PSM 문의 [3] | starwars | 2023.04.13 |
1182 | ggPS, ggPSMSummary function [6] | 로렌쵸메디치 | 2023.04.12 |
1181 | Survival 분석에 대해서 문의 드립니다. | 정훈신 | 2023.04.05 |
1180 | 안녕하세요. 분석 툴에 대해 문의드립니다. [1] | 스매직맨 | 2023.04.04 |
1179 | 드디어 publish 되었네요. [2] | 정지윤 | 2023.04.04 |
1178 | 연구동향분석 시 논문 데이터 정제 관련 [5] | vtlbtl | 2023.03.31 |
1177 | 안녕하세요 교수님 에러 문의드립니다 [2] | 소소 | 2023.03.26 |
1176 | 코딩값이 여러개인 변수에 대한 전체 p값을 알 수 있는 방법이 궁금합니다 | 쥬쥬즈주 | 2023.03.22 |
1175 | PSM 매칭 버튼 보이지 않음. | swpapa | 2023.03.19 |