R 함수

R Functions

1. 기본
1) scan


2) save, dump, load


3) col =




4) stack, aov

5) 데이터 불러오기
csvdata <- read.csv("~/Desktop/rawdata.csv", header = TRUE)
txtdata <- read.table("~/Desktop/rawdata.txt", header = TRUE, sep = "\t")

6) Tabular 데이터 > Row 데이터
- table > dataframe > list > dataframe


2. Charts of 1 Variable 일변량 차트
1) Barplot in 범주형 변수



# horiz = TRUE
# beside = TRUE (가로로 이어서 붙일지) - FALSE면 stacked

2) Pie Charts

옵션) init.angle=90 / 12시에서 방향 시작

3) Histogram
- 히스토그램이 density(proportion) chart일 때 (freq = FALSE)
  정규성 / 중요 '편차'을 발견하기 쉬움 (default = Frequencies /TRUE)


- 라인 추가하기
- 아래 lines, rug를 쓰려면 위에 hist함수에서 freq=FALSE를 필수적으로 입력해야함

4) Boxplot


# horizontal = TRUE

3. 정규분포 norm
1) rnorm(n, mean, sd): 난수 생성

2) dnorm(x, mean, sd): 밀도 함수 (Density Function)

3) pnorm(q, mean, sd): 누적함수

 - lower.tail = TRUE: 분위수 q를 기준으로 왼쪽 -inf부터 q까지 분포
 - lower.tail = FALSE: 분위수 q를 기준으로 q부터 오른쪽 inf까지 분포

4) qnorm(p, mean, sd, lower.tail = TRUE/FALSE)
 정규분포를 따르는 모집단에서
 특정 누적분포함수 값 p에 해당하는 분위수 q를 알고 싶을 때 사용


4. Statistics for 1 Variable 일변량 기술통계
1) Frequencies

2) Descriptive Statistics
summary( )

3) Single Proportion: 가설검정, 신뢰구간

귀무가설 변경 / 신뢰수준 변경 커맨드 추가

4) Single Mean

5) Chi-squared (One Variation) Test



5. Modifying Data
1) Delete Outliers

- 선형이 아님 (중심부보다 outlier에 영향을 많이 줌)
- Data를 잃지 않고 변형한 케이스

2) Transformation
 (1) Logarithmatic
 (2) Rank
 - Data를 잃음
 (3) Dichotomization (이원화)
 - Data를 제일 많이 잃음, 심하게 skewed된 데이터에 적합

3) Missing Data 결측값
# Find NA
which(is.na(x1))

# Remove NA
mean(x1, na.rm=TRUE)    # Removes NA from calculations

# Replace NA 1: is.na
x2 <- x1   # copy
x2[is.na(x)] <- mean(x2, na.rm= TRUE)   # If item in x2 is NA, replace mean

# Replace NA 2: ifelse
x3 <- ifelse(is.na(x1), mean(x1, na.rm = TRUE), x1)       # Impute mean

6. Working with the Data File
1) Selecting



2) Analyzing with Subgroups

- aggregate 함수: 그룹 비교 with Function 설정

3) Merging

7. Charts for Association  
1) Grouped Bar Charts of Frequencies


2) Bar Charts of Group Means

# 적절한 Bar Chart를 위해선 반드시 데이터를 재가공해야함

3) Grouped Box plots
# 1-2번과 달리 전체적인 맥락과 분포 또한 파악할 수 있음



- 패키지를 써서 / require("RColorBrewer")
 col = brewer.pal(8, "Pastel2") 및 outcol = brewer.pal(8, "Pastel2") 옵션을 써서 할 것

4) Scatter plots





- lowess: 가중선형회귀 함수
  lowess(y~x,f)  /  s1=lowess(cars$dist~cars$speed) 등으로 사용

8. Statistics for Association
1) Correlations


- Hmisc 패키지를 이용했음
- 기본 함수는 cor / 패키지함수는 rcorr

2) Bivariate Regression  이변량 회귀분석

3) 2 Sample T-test
t. test를 하기 전에는
먼저 var.test를 하여 두 집단의 분산을 비교한 뒤,
같으면 인자에 var.equal = TRUE를 넣어주고
                               아니면 FALSE


4) Paired T-test
alternative = "greater" / "less" / c("two.sided")

5) One-factor ANOVA

6) Compared Proportions
- 2개의 벡터를 전제로 한다.
- n벡터: trial의 수 혹은 전체 관찰값 
- x벡터: positive outcome의 수
- 이 두 벡터를 prop.test( )로 비교하는 것

7)  Cross-tabulations


9. Charts for 3개 이상 Variables  다변량 차트
1) Clustered Bar Charts for means
- 데이터에 바로 barplot을 적용할 수 없으므로 재가공해야함

 (1) list( )를 이용하여 data가 올바른 포맷을 가지게 만든다.
   -> wool과 tension을 factor로서 인식하게 만든다.
 (2) tapply( )를 이용하여 벡터/행렬에 함수를 적용한다.


# 범주형 변수들을 연속형 변수 outcome으로 나타내는 경우 사용

2) Scatter Plots by Groups
# 범주형 변수와 연속형 변수가 섞여 있는데 outcome을 연속형 변수로 나타내는 경우



3) Scatter Plot Matrices
(1) 기본 그래프 pairs( )

- 정보가 너무 밀집되어 있음 (5번째는 범주형 변수이므로 pairs(iris[1:4])로 할 것

(2) panel.hist란 새로운 함수를 생성하여 발전된 그래프 pairs( )



(3) car패키지의 scatterplotMatrix함수를 써서 고급 그래프를 그림
  - 4개의 연속형 변수와 1개의 범주형 변수의 관계를 보여줌
  - 그룹 속성을 색깔과 형태로 나타냄
  - 범례 추가
  - 각각의 plot에 회귀직선 추가
  - 각각의 plot에 CI를 추가하면서 스무스하게 만듦
  - 각각의 변수에 대해 커널밀도추정치와 rugplot을 제공



10. Statistics for 3개 이상 Variables   다변량 기술통계
1) Multiple Regression
 (1) 기본

- 같이 쓰는 함수들:
 anova( ): 회귀모형에 대한 ANOVA table
 coef( ):  회귀모형의 '계수' 제공
 confint( ): CI
 resid( ): case-by-case 잔차 제공
 hist(residuals( ) ): 잔차들의 히스토그램 제공

  (2) 후진제거법 Backwards Removal



  (3) 전진선택법 Forward Selection



2) Two-factor ANOVA
 (1) 방법 1
 (2) 방법 2


3) Cluster Analysis
 (1) kmeans clusplot
  - cluster 패키지 이용


 (2) Hierarchical Clustering (Dendrogram 만들기)

   기본 - plot( )
    - 바로 Raw dataframe에 적용 불가 -> Distance / Dissimilarity Matrix 필요
    -> dist( ) 함수로 적용 -> plot으로 마무리


  색깔그룹화 - cutree( )
  - cutree( ) 함수로 색깔그룹화 할 수 있음 (단, 어디에서 자를지 알려줘야한다.)
  -> k = 3 (몇 번째 그룹인지 알려줌) or h = 230 (그래프의 Height 수치를 알려줌)



4) Principal Components and Factor Analysis

(1) PCA: 주성분 분석



 (2) FA: 요인분석

 - 여기서 p< .05가 아니라 p> .05를 찾아야 할 것이다.
   데이터와 일치하는 쌍을 찾아야 하기 때문이다.
   결과 중 하나를 보이면,














댓글

가장 많이 본 글