dataA <- read.table("C:/rData/exampleData1.txt", sep=" ")
dataA

names(dataA) <- c("gender", "rScore", "pythonScore", "javaScore")
dataA

# 변수 명이 텍스트 파일에 있을 경우 header = TRUE 를 사용해서 번수 이름을 지정한다.
dataB <- read.table("C:/rData/exampleData2.txt", header = TRUE, sep=" ")
dataB

read.csv("C:/rData/exampleData3.txt")

URL="http://archive.ics.uci.edu/ml/machine-learning-databases/cpu-performance/machine.data"
cpuPerformence <- read.table(URL, header = FALSE, sep = ",")
head(cpuPerformence)

gender <- c("M", "F", "M", "F", "F")
rScore <- c(58, 66, 92, 78, 88)
pythonScore <- c(88, 55, 98, 75, 58)
javaScore <- c(66, 88, 90, 78, 66)
dataW <- data.frame(gender, rScore, pythonScore, javaScore)
write.table(dataW, "C:/rData/A.txt", quote=TRUE, row.names=FALSE)
write.table(dataW, "C:/rData/B.txt", quote=FALSE, row.names=FALSE, sep=",")

str(iris)

head(iris)
write.csv(iris, "C:/rData/iris.csv", quote=FALSE, row.names=FALSE)

x <- c(1, 3, 5, 7, 9)
y <- c(3, 4, 5, 6, 7)

if(mean(x) == mean(y))
  {print("mean(x) is equal to mean(y)")}

if(var(x) > var(y))
{print("var(x) is greater than var(y)")
  print(var(x))
  print(var (y))}

if(is.vector(x))
{print("x is vector")}else
{print("x is not vector")}

signal <- function(light){
  if(light == "red")
    {print('정지')}else if(light=="green")
    {print("직진")}else
    {print("몰름")}
}
light <- "red"
signal(light)


jumsu <- c(99, 20, 60, 80, 70)
grade <- ifelse(jumsu >= 60, "Pass", "Fail")
data.frame(jumsu, grade)

score <- c(1, 2, 3, 4, 5)
a <- 2
switch(a, "1"=mean(score), "2"=sum(score), "3"=var(score))

evenSum <- 0
oddSum <- 0
for(x in 1:100)
  if(x %% 2 == 0) {
    evenSum <- evenSum + x
  } else {
    oddSum <- oddSum + x
  }
print(evenSum)
print(oddSum)

data <- c(1, NA, NA, 2, 3, 4, 5, NA, 6, 7, 8, NA, 9, 10, NA)
completeData <- c()
for(x in data)
  if(!is.na(x)) {
    completeData <- c(completeData, x)
  } else {
    next
  }
print(completeData)
print(length(completeData))


data <- c(1, NA, NA, 2, 3, 4, 5, NA, 6, 7, 8, NA, 9, 10, NA)
for(x in 1:length(data)) {
  if(is.na(data[x])) data[x] <-0
}
print(data)
print(length(data))
print(mean(data))


gugudan <- function(dan){
  i=1
  while (i<=9) {
    guguDan <- i*dan
    print(guguDan)
    i = i+1
  }
}
gugudan(2)

sum <- 0
i <- 0
repeat{
  sum <- sum+i
  if(sum >= 3000)
    break
  i <- i+1
}
print(i)
print(sum)

 

txt 파일을 읽어오는데 오류가 발생하였다. 오류의 원인은 txt 파일 마지막에 줄내림을 하지 않아서였다.

 

마지막 문자다음에 enter를 눌러 커서를 내리면 오류가 해결된다.

마지막 라인이 완성 되었 다는 것은 공백 열이 필요하다는 것 같다.

'빅데이터 자료처리' 카테고리의 다른 글

R언어 - 파일 입출력 & 반복문 테스트  (0) 2020.07.07
R 데이터 구조  (0) 2020.06.30
R언어 역사 & 설치  (0) 2020.06.29

<R 데이터 구조>

벡터: 동일한 유형의 데이터를 담는 R의 기본적인 1차원의 데이터 구조이다.

 

팩터: 명목형 또는 순서형 데이터를 담는 범주형 데이터 구조이다.

Tip) 범주형 데이터 : 설문한 사람이 남자인지 여자의 범주인지(성별) 

 

행렬: 동일한 유형의 데이터를 담는 2차원의 데이터 구조이다.(벡터가 여러개 모임 )

 

데이터 프레임: 2차원의 데이터 구조를 갖고 있으나 여러 가지 유형을 가진다.

(데이터분석에 가장 많이 사용되는 데이터 구조)

 

데이터 테이블: 데이터 테이블은 데이터 프레임 보다 데이터의 가공이 편리하고 매우 빠른 수행 속도를 갖고 있는 데이터 구조이다.

 

리스트: 리스트를 구성하는 성분은 벡터, 행렬, 배열, 데이터프레임, 다른 리스트 등이 될 수 있고 성분의 길이와 차원이 동일할 필요가 없는 데이터 구조 이다.

 

 

 

<변수>

- 프로그램이 사용하는 데이터를 일시적으로 저장하기위해서 사용하는 메모리 공간이다.

- 변수에 데이터를 담을 때는 기호 "<-" 또는 "="를 사용한다. 여기서 변수명은 왼쪽에 둔다.

- 변수는 영문자, 숫자, 밑줄 문자(_) 를 활용한다

- 대, 소문자를 구별한다.

- 기본 용어 x

 

<자료형(mode)>

정수 인식 방법  x <- 100L

L을 붙이지 않으면 실수로 인식한다.

mode(x) 

결과 "numeric" 

typeof(x)

결과 "integer"

 

<백터>

- R에서 가장 기본적인 데이터 구조는 벡터이다.

- 벡터는 동일한 유형의 1차원 데이터를 담는 그릇이다.

- 벡터의 속성은 데이터의 유형, 길이, 원소의 이름이 있다.

- 함수 mode(), length(), names()를 이용하여 확인할 수 있다.

- 함수 c(), 수열 연산자(:), seq(), rep(), scan(), paste() 등을 이용하여 수치형, 문자형, 논리형 벡터를 생성할 수 있다.

- c는 concatenate의 약자이다.

  tip) concatenate 연쇄시키다.
- xvec <- c(11, 22, 33, 44, 55) -> 백터 사용방법

 

tip)벡터의 값들에 타입이 다르면 가장 우선 순위가 높은 타입으로 통일된다.

    문자열 > 정수형 > 불린타입

 

- 수열 연산자(:)에 의한 벡터 생성

seq()함수를 이용한 벡터 생성 - for 문과 비슷하다.

seq(from, to, by)

 

 

 

 

rep()함수를 이용한 벡터 생성

rep()는 일정한 규칙을 갖고 반복된 벡터를 생성하는 함수이다.

rep(x, times, each)

 

scan()함수를 이용한 벡터 생성

scan()함수를 이용하여 직접 콘솔에서 데이터를 입력 할 수 있고

외부파일에서 읽어 올 수도 있다.

scan(file, what, sep)

sep은 separate 의 약자이다.

what은 자료형이다.

 

 

 

 

paste() 함수를 이용한 반복되는 문자열 생성

paste()함수를 이용하여 반복되는 문자열을 쉽게 생성할 수 있다.

 

append함수는 완전히 새로운 벡터를 생성시키는 함수이며 기존 벡터에는 영향을 주지 않는다.

 

<벡터의 원소 추출>

첨자[]을 사용한 벡터의 원소 추출

첨자에 -숫자를 넣으면 숫자 번째의 값이 벡터에서 제거가 된다.

 

names()함수를 이용한 벡터의 접근

names()함수를 통해 각 배열의 항목에 이름이 붙는다.

배열에 붙은 이름을 통해 그 배열의 원소를 찾아낼 수 있다.

 

R에서 null값은 NA로 표현

mean은 평균을 계산하는 함수이다. 2번째 매개변수에 벡터의 값에 조건을 걸 수 있다.

 

 

그외 논리 연산자

x <- TRUE

isTRUE(x)

R이란?

- 뉴질랜드 오클랜드 대학교의 로스 이하카(Ross Ihaka)와 로버트 젠틀맨에 의하여 1990년초에 개발 되었다.

- 통계 계산과 그래픽스 지원 공개 소프트웨어

- 다양한 환경에서 설치 가능

- 통계분석, 데이터 시각화, 데이터마이닝, 빅데이터, 인공지능 등 다양한 전공 분야에서 활용

- 다양한 패키지

- 객체지향언어나 함수형프로그래밍언어에서 볼 수 있는 특징 포함

- R을 지원하는 다양한 GUI가 있다.

 

R studio 의 정상 작동을 위해 R, R Studio, R Tools를 다운로드 하여야 한다.

 

R 설치 방법

1. (www.r-project.org)접속

 

R: The R Project for Statistical Computing

 

www.r-project.org

 

2. CRAN 클릭

여기서 아무거나 본인은 맨 위 선택

 

3. 본인 운영채제 선택

 

4. base 클릭

 

5. 재일 위에 큰 글자 다운로드 클릭

저는 4.0.2 버전이군요

 

R Studio 설치 

 

(https://rstudio.com/products/rstudio/download/)접속 and free 버전 다운

 

Download RStudio

RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, and a variety of robust tools for plotting, viewing history, debugging and managing

rstudio.com

R tools 설치

https://cran.r-project.org/bin/windows/Rtools/

 

Using Rtools40 on Windows

Starting with R 4.0.0 (released April 2020), R for Windows uses a brand new toolchain bundle called rtools40. This version of Rtools upgrades the mingw-w64 gcc toolchains to version 8.3.0, and introduces a new build system based on msys2, which makes easie

cran.r-project.org

 

+ Recent posts