또 다시 시작된 R 프로그래밍의 늪..ㅎㅎ
1주차 오픈소스와 R 프로그램
아래 두 사이트에서 두 개 다 설치
https://www.rstudio.com/products/rstudio/download/
실행 단축키 : Ctrl & Enter
#는 메모노트 (실행X)J
A. 코드 설명
x1<-c(1,3,5,7,9)
#X의 범주는? 숫자인지 문자인지
class(x1)
>is.numeric(x1) #x1은 숫자다
#X는 숫자인가?
is.numeric(x1)
>TRUE
#X의 길이는?
length(x1)
>5
B. 코드 설명
x2 <-c(1,4,9)#최솟값 min(x2)#최댓값 max(x2)#평균 mean(x2)#제곱근 sqrt(x2)#산점도 plot(x2)#로그 log10(10)#자연로그 log(10)
#엑스포넨셜 exp(10)
#현재까지 생성된 데이터 나열 list-up ls()
#값 설정 제거 rm(x1)
#소문자로변경 tolower(c1)
#대문자로변경 toupper(c1)
#정규분포로부터 데이터 생성 함수 rnorm(n, mean, std)
x3<-rnorm(100,0,5)#앞6개데이터 보여줘 head(x3)
추가패키지 설치 : ggplot2(그래픽에 필요한 툴), NLP, tm, worldcloud(텍스트마이닝에 필요한 패키지)install.packages("ggplot2")library(ggplot2)install.packages("scatterplot3d")library(scatterplot3d)
2주차 벡터, 행렬의 연산 및 함수
A. 벡터 생성 코드#0부터 10까지 20개의 값 생성y1<-seq(0,10,length=20)#0부터 10까지 0.5간격을 두고 값 생성y2<-seq(0,10,by=0.5)#반복문, 1에서 4까지 2번 반복하여 생성z1<-rep(1:4,2)#백터를 열기준으로 결함x<-c(1,3,5,7,9)c1<-c(2,4,6,8,10)c2<-cbind(x,c1)c3<-rbind(x,c1)
#벡터에 이름주기, 0=female, 1=male이라는 값을 부여
gender<-c(0,1)
names(gender)<-c("female","male")
#범주형변수 생성 factor함수
size<-c("s","m","l","xl")
size_factor<-factor(size)
#범주형 변수에서 순서 정의
size_factor3<-factor(size,order=TRUE,levels=c("s","m","l","xl"))
# 행렬 생성 matrix함수
#1부터10까지 숫자로 2행의 행렬 생성
m1<-matrix(1:10,nrow=2)
#1부터 6까지 숫자로 3열의 행렬을 생성
m2<-matrix(1:6, ncol=3)
#1열부터 채우기
m3<-matrix(1:6,nrow=2,byrow=T)
#고차원함수 array함수a1<-array(c(1:18),dim=c(3,3,2))
#함수생성square<-function(x){return(x*x)}>square(9)[1]81
#루프문(for)#1부터 10까지의 수 중 3으로 나눈 나머지가 1이 아닌 수 출력
for(i in 1:10){
if(i%%3 == 1){
next()
}
print(i)
}
#루프문(while)
#y가 5보다 적을 때는 {}을 수행
y=0
while(y <5){ print(y<-y+1) }
3주차 R데이터구조(생성,추출)
#불러들이기_폴더지정
setwd("C:/Users/ncufo/OneDrive/바탕 화면/moocr")
#파일읽기
brain<-read.csv("brain2210.csv")head(brain)dim(brain) #데이터의 관측치수와 변수의 갯수를 알려줌
#데이터이름을 따로 지정하지 않아도 됨_그냥 해주기
attach(brain)
#tabel(변수)
#히스토그램 hist(변수)
brain파일에 있는 wt를 불러오고 싶을 때 attach를 안해주면
hist(brain$wt)로 해야되지만 attach해주면 hist(wt)만 입력해도 되는 것
#excel파일에 worksheet가 여러개 있을 땐 readxl패키지 설치
install.packages("readxl")
library(readxl)
mtcars1<-read.excel("C:/Users/ncufo/OneDrive/바탕 화면/moocr/brain2210",sheet="brain")
#brain데이터에서 female만 있는 subset데이터 생성(데이터추출)
brainf<-subset(brain, sex=='f')
#brain데이터에서 wt<1300이하인 데이터 생성
brain1300<-subset(brain,wt<1300)
#데이터핸들링
install.packages("dplyr")
library(dplyr)
#select 일부변수선택
#filter 필터링기능
#mutate 새로운 변수 생성
#group_by 그룹별 통계량을 얻을 때
#summarize 요약통계량
#변수특성 변경(as.numeric, as.integer, factor)
#summary(데이터이름)
#car데이터에서 mpg로 시작하는 변수를 제외하고 set2라는 데이터를 생성
set2<-select(car,-starts_with("mpg"))
#조건식에 맞는 데이터 추출 : car데이터에서 mpg가 30보다 큰 행 추출)
set3<-filter(car,mpg>30)
4주차 데이터시각화
5주차 데이터탐색
#정규성검정qqnorm()
#정규성검정
shapiro.test(g3)
p.value가 0에 가까우면 g3는 정규분포한다고 볼 수 없다.
6주차 통계분석
1. 두 그룹간 평균비교분석 t-test
*단일 표본의 평균 검정
가설 1 : G3(최종성적)의 평균은 10인가? H1(귀무가설) : 평균(mu)=10
t.test(G3,mu=10)
*p-value가 0.07이 나오고 알파=0.05에서 G3의 평균이 10이라고 할 수 있는 근거가 있다.
*두 집단의 표본평균 비교검정
가설 2 : 거주지역(R, U)에 따른 G3(최종성적) 평균에 차이가 있는가? (양측검정)
t.test(G3~address, data=stud)
*p-value가 0.03으로 유의수준 0.05에서 거주지역에 따라 G3는 유의한 차이가 있다고 할 수 있다. (0이 아니다)
2. 짝을 이룬 그룹간 평균 비교
*동일한 표본에 before&after측정
t.test(before,after,mu=0,paired=T))
3. 분산분석 anova
: 전체 분산을 분석하여 어떤 요인(factor)의 영향이 유의한지 검정하는 방법
예) Drug effect(5mg, 10mg, placebo) Age effect(young, old)
(1) Factor가 한 개 일 때
거주지역에 따른 학업성취도 : 거주지역(factor:R/U), 학업성적(1-20)
- 도심지역 학생들 성적이 외곽지역 학생들보다 높다.
a1<-aov(G3~address)
summary(a1)
*p-value가 0.03으로 유의수준 0.05에서 거주지역에 따른 학업 성적에 유의한 차이가 있다.
사후검정 : ANOVA에서 어떤 factor의 유의성이 검정되면, 그 다음 단계에서 하는 검정
TukeyHSD(a2, "travelrime", ordered=TRUE)
plot(TukeyHSD(a2, "traveltime"))
7주차 상관분석과 회귀분석
#상관분석 cor(변수1, 변수2)
#단순회귀모형
r1<-lm(mpg~wt, data=car1)
summary(r1)
anova(r1)
8주차 데이터마이닝 기초
#다중회귀분석
r1<-lm(y~x1+x2+x3,data=car1)
#다중공선성
install.packages("car")
library(car)
vif(lm(mpg~disp+hp+wt+accler, data=car))
*disp와 wr의 VIF가 10에 가까움 크게 문제되지 않는다고 볼 수 있음
'20대 성장기 > 공부' 카테고리의 다른 글
논문 쓰는데 필요한 R 프로그래밍 코드 정리 : 기초, 정규화 (0) | 2021.11.05 |
---|---|
ESG 경영 이해하기 1, 책 리뷰 :: 이해관계자 자본주의 (0) | 2021.07.08 |
독서록 :: 플랜 드로 다운_식량/여성 (0) | 2021.06.01 |
case study : a look at environmental and social risk management in projects financed by IDB (0) | 2021.05.12 |
계량경제학 5. 질적인 정보와 다중회귀분석 (0) | 2021.05.11 |