티스토리 뷰
◆ Wide Format: 사람이 읽기에 좋은 포맷
행(row)에 한 명의 정보를 담음
열(column)에 모든 요인(factor)의 level을 담음
sample ID | sex | age | condition A | condition B |
1 | female | 38 | 9 | b |
2 | male | 29 | 8 | b |
3 | male | 41 | 9 | a |
- 3 개의 factor (sex, age, condition)를 가지는 디자인
- 각 factor는 sex, age, condition이며, condition은 A, B의 level을 가짐 (cell의 숫자는 각 항목의 값)
◆ 위 디자인의 회귀식을 R에서 구하면 다음과 같다
aov(score ~ sex + age + condition)
Wide 형식에서는 condition이 2 개의 열이므로 하나의 요인으로 처리가 어렵다.
이를 Long 형식으로 치환하면 각 열에 factor를 배치하게 되므로 간단히 처리할 수 있게 된다.
◆ Long Format: 열을 factor 별로 정리, 한 행은 wide form에서 특정 cell의 정보를 반영
Sample ID | sex | age | condition | score |
1 | female | 38 | A | 9 |
2 | male | 29 | A | 8 |
3 | male | 41 | A | 9 |
1 | female | 38 | B | b |
2 | male | 29 | B | b |
3 | male | 41 | B | a |
R에서 wide format을 long format으로 바꾸는 방법은 reshape2 패키지의 melt 함수를 이용하는 것
reshape2에서
wide format -> long format : melt()
long format -> wide format : dcast() 를 이용
library(reshape2)
long.format <- melt(wide.format, id.var = c("age", "sex"),
variable.name = "condition", value.name="score")
여기에서 id.var는 포맷을 바꾸지 않고 유지하는 항목을 넣으면 되고,
condition과 같이 변환해야 하는 항목은 variable.name으로 지정하고
value를 넣을 변수 명을 value.name에 지정하면 된다.
# formula: rowvar1 + rowvar2 + ... + colvar1 + colvar2 + ...
dat.wide <- dcast(dat.long, age + sex ~ condition, value.var = "score")
# function 추가 가능 (aggregation)
dat.wide <- dcast(dat.long, age ~ condition, mean, value.var = "score")

'데이터 분석 > 전처리' 카테고리의 다른 글
오버샘플링 기법 (0) | 2023.12.22 |
---|---|
SQL, R 전처리 함수 모음 (0) | 2023.12.22 |
Grayscale images to 3 channels for CNN (0) | 2023.02.08 |
numpy 행렬 나누기 (0) | 2023.01.05 |
다층 모형을 위한 전처리 (0) | 2023.01.04 |
- Total
- Today
- Yesterday
- 딥러닝
- sequenced data
- ECG
- HRV
- SNP
- 그룹비교
- plink
- pre-train
- 인공지능
- vcf
- featuremap
- 실험통계
- 생존분석
- Bioinfo
- gray2rgb
- pmm
- PTB
- sounddevice
- fasta
- 평균분석
- NGS
- cnn
- rgb2gray
- missing_value
- GradCam
- 생존함수
- r
- psychopy
- 생존곡선
- GPU설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |