(1) 연산자의 종류와 활용

x = 3
y = 5
z = 10


# 덧셈
x + y
## [1] 8
# 뺄셈
x - y
## [1] -2
# 곱셈
x * y
## [1] 15
# 나눗셈
x / y
## [1] 0.6
# 나눗셈의 몫
z %/% 3
## [1] 3
# 나눗셈의 나머지
z %% 3
## [1] 1
# 제곱과 제곱근
z**2
## [1] 100
z**0.5
## [1] 3.162278
sqrt(z)
## [1] 3.162278
# 논리연산자 (조건)
x < y
## [1] TRUE
x > y
## [1] FALSE
x >= 2
## [1] TRUE
x <= 2
## [1] FALSE
x == y
## [1] FALSE
x != y
## [1] TRUE
x > 3
## [1] FALSE
y > 3
## [1] TRUE
# 교집합 (&)
x > 3 & y > 3
## [1] FALSE
# 합집합 (|)
x > 3 | y > 3
## [1] TRUE

(2) 자료의 생성 및 입력

# Vector의 생성 및 선택

1:6
## [1] 1 2 3 4 5 6
c(1,2,3,4,5,6)
## [1] 1 2 3 4 5 6
c(1,3,5,7,9)
## [1] 1 3 5 7 9
a = c(1,3,5,7,9)
a
## [1] 1 3 5 7 9
b = c(1,3,5,7,9, 1:10)
b
##  [1]  1  3  5  7  9  1  2  3  4  5  6  7  8  9 10
c = seq(1,3, by= 0.5)
c
## [1] 1.0 1.5 2.0 2.5 3.0
d = seq(1,3, by = 0.2)
d
##  [1] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
e = rep(1:3, times=5)
e
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
f = rep(1:3, each=5)
f
##  [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
a
## [1] 1 3 5 7 9
a[3]
## [1] 5
a[2:4]
## [1] 3 5 7
a[c(1,3)]
## [1] 1 5
a[-3]
## [1] 1 3 7 9
a[a == 5]
## [1] 5
a[a != 5]
## [1] 1 3 7 9
a[c(1,3)] = 0
a
## [1] 0 3 0 7 9
# 행렬의 생성과 선택

x = matrix(1:12, 3, 4)
x
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
y = matrix(1:12, 3, 4, byrow=T)
y
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
matrix(1, 3, 4)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
matrix(0, 3, 4)
##      [,1] [,2] [,3] [,4]
## [1,]    0    0    0    0
## [2,]    0    0    0    0
## [3,]    0    0    0    0
matrix(NaN, 3, 4)
##      [,1] [,2] [,3] [,4]
## [1,]  NaN  NaN  NaN  NaN
## [2,]  NaN  NaN  NaN  NaN
## [3,]  NaN  NaN  NaN  NaN
z = diag(5)
z
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    0    0    0    0
## [2,]    0    1    0    0    0
## [3,]    0    0    1    0    0
## [4,]    0    0    0    1    0
## [5,]    0    0    0    0    1
diag(z)
## [1] 1 1 1 1 1
x[1:2,1:2]
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
x[2,3]
## [1] 8
x[1,]
## [1]  1  4  7 10
x[,1]
## [1] 1 2 3
# 배열의 생성과 선택

X = array(1:24,c(3,4,2))
X
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,]   13   16   19   22
## [2,]   14   17   20   23
## [3,]   15   18   21   24
X[, , 1]
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
X[, , 2]
##      [,1] [,2] [,3] [,4]
## [1,]   13   16   19   22
## [2,]   14   17   20   23
## [3,]   15   18   21   24
X[2, 4, 2]
## [1] 23

(3) Dataframe의 생성 및 입력

# Dataframe (table)의 생성 및 선택
df  = data.frame(x = 1:3,
                  y = c('kim', 'lee', 'park'),
                  z = c(TRUE, TRUE, FALSE))
df
##   x    y     z
## 1 1  kim  TRUE
## 2 2  lee  TRUE
## 3 3 park FALSE
df$x
## [1] 1 2 3
df[,1]
## [1] 1 2 3
df[[1]]
## [1] 1 2 3
df[1,]
##   x   y    z
## 1 1 kim TRUE
df[3,3]
## [1] FALSE
x
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
y
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
z
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    0    0    0    0
## [2,]    0    1    0    0    0
## [3,]    0    0    1    0    0
## [4,]    0    0    0    1    0
## [5,]    0    0    0    0    1
a
## [1] 0 3 0 7 9
b
##  [1]  1  3  5  7  9  1  2  3  4  5  6  7  8  9 10
c
## [1] 1.0 1.5 2.0 2.5 3.0
out = list(a=a,b=b,c=c,x=x,y=y,z=z,df=df)
out
## $a
## [1] 0 3 0 7 9
## 
## $b
##  [1]  1  3  5  7  9  1  2  3  4  5  6  7  8  9 10
## 
## $c
## [1] 1.0 1.5 2.0 2.5 3.0
## 
## $x
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
## 
## $y
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## 
## $z
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    0    0    0    0
## [2,]    0    1    0    0    0
## [3,]    0    0    1    0    0
## [4,]    0    0    0    1    0
## [5,]    0    0    0    0    1
## 
## $df
##   x    y     z
## 1 1  kim  TRUE
## 2 2  lee  TRUE
## 3 3 park FALSE
out$df
##   x    y     z
## 1 1  kim  TRUE
## 2 2  lee  TRUE
## 3 3 park FALSE
out$df[3,3]
## [1] FALSE
library(openxlsx)
library(readxl)
library(data.table)


df1 = read.xlsx("regress.xlsx")
df2 = read_excel("regress.xlsx")

df1
##    대인관계 자아개념 근무평정 SES점수 근무만족도
## 1        34       78       88      88         88
## 2        23       98       78      56         98
## 3        34       78       98      78         88
## 4        23       88       77      78         89
## 5        34       88       89      67         89
## 6        45       87       89      78         78
## 7        34       89       98      77         78
## 8        34       67       67      56         67
## 9        45       56       78      77         78
## 10       34       78       67      65         89
## 11       78       67       56      64         88
## 12       65       34       67      65         67
## 13       56       45       78      34         45
## 14       67       34       89      45         43
## 15       78       45       78      67         45
## 16       76       56       67      57         56
## 17       78       45       78      45         45
## 18       89       34       67      56         67
## 19       78       45       78      56         56
## 20       67       34       67      45         56
## 21       56       23       98      34         45
## 22       34       34       56      45         45
## 23       23       56       67      56         56
## 24       34       45       78      45         45
## 25       23       34       89      34         56
## 26       34       45       78      45         45
## 27       45       34       67      34         34
## 28       34       23       56      45         45
## 29       45       34       67      56         56
## 30       56       56       78      66         65
df2
## # A tibble: 30 × 5
##    대인관계 자아개념 근무평정 SES점수 근무만족도
##       <dbl>    <dbl>    <dbl>   <dbl>      <dbl>
##  1       34       78       88      88         88
##  2       23       98       78      56         98
##  3       34       78       98      78         88
##  4       23       88       77      78         89
##  5       34       88       89      67         89
##  6       45       87       89      78         78
##  7       34       89       98      77         78
##  8       34       67       67      56         67
##  9       45       56       78      77         78
## 10       34       78       67      65         89
## # … with 20 more rows
class(df1)
## [1] "data.frame"
class(df2)
## [1] "tbl_df"     "tbl"        "data.frame"
df3 = read.csv("tempbig.csv")
df4 = read.csv2("tempbig.csv")
df5 = fread("tempbig.csv")

system.time(read.csv("tempbig.csv"))
##  사용자  시스템 elapsed 
##    7.98    0.10    8.10
system.time(fread("tempbig.csv"))
##  사용자  시스템 elapsed 
##    0.33    0.03    0.08