프로그래밍 문법/R

함수

씩씩한 IT블로그 2020. 6. 22. 22:21
반응형

1. 문자열

(1) pasted()

벡터형식 문자열 합치기 (파이썬의 "".join(list)와 비슷)

str6 <- c("hello","my","world","hi")
str6
str6_pated <- paste(str6,collapse=" ") #collapse파라미터는 반드시 필요, 없으면 paste안됨
str6_pated
> str6 <- c("hello","my","world","hi")
> str6
[1] "hello" "my"    "world" "hi"   
> str6_pated <- paste(str6,collapse=" ") #collapse파라미터는 반드시 필요, 없으면 paste안됨
> str6_pated
[1] "hello my world hi"
​

 

2. 데이터

(1) head(), tail()

데이터에서 첫 6개, 마지막 6개 데이터 출력

# 앞부분을 출력, 6이 default, 10을 주면 상위 10개출력
head(exam,10)

# 뒷부분을 출력, 6이 default
tail(exam)
> # 앞부분을 출력, 6이 default
> head(exam,10)
   id class math english science
1   1     1   50      98      50
2   2     1   60      97      60
3   3     1   45      86      78
4   4     1   30      98      58
5   5     2   25      80      65
6   6     2   50      89      98
7   7     2   80      90      45
8   8     2   90      78      25
9   9     3   20      98      15
10 10     3   50      98      45
> 
> # 뒷부분을 출력, 6이 default
> tail(exam)
   id class math english science
15 15     4   75      56      78
16 16     4   58      98      65
17 17     5   65      68      98
18 18     5   80      78      90
19 19     5   89      68      87
20 20     5   78      83      58

 

(2) view()

뷰어창에서 exam데이터 확인

# 뷰어창에서 exam데이터 확인
View(exam)

 

(3) dim()

차원을 확인

# 차원확인
dim(exam)
> # 차원확인
> dim(exam)
[1] 20  5

 

(4)str()

속성파악하기 (속성별 데이터type, 값등을 출력)

# 속성파악하기
str(exam)
> # 속성파악하기
> str(exam)
'data.frame':	20 obs. of  5 variables:
 $ id     : int  1 2 3 4 5 6 7 8 9 10 ...
 $ class  : int  1 1 1 1 2 2 2 2 3 3 ...
 $ math   : int  50 60 45 30 25 50 80 90 20 50 ...
 $ english: int  98 97 86 98 80 89 90 78 98 98 ...
 $ science: int  50 60 78 58 65 98 45 25 15 45 ...

 

(5)summary()

요약통계량(각각의 컬럼별로, 문자열속성이면 값의개수, 숫자면 4분위수 및 평균)

summary(exam)
> summary(exam)
       id            class        math          english    
 Min.   : 1.00   Min.   :1   Min.   :20.00   Min.   :56.0  
 1st Qu.: 5.75   1st Qu.:2   1st Qu.:45.75   1st Qu.:78.0  
 Median :10.50   Median :3   Median :54.00   Median :86.5  
 Mean   :10.50   Mean   :3   Mean   :57.45   Mean   :84.9  
 3rd Qu.:15.25   3rd Qu.:4   3rd Qu.:75.75   3rd Qu.:98.0  
 Max.   :20.00   Max.   :5   Max.   :90.00   Max.   :98.0  
    science     
 Min.   :12.00  
 1st Qu.:45.00  
 Median :62.50  
 Mean   :59.45  
 3rd Qu.:78.00  
 Max.   :98.00  

 

(6)dplyr::rename(dataFrame,(바꿀이름)=(원래이름))

속성명을 변경할 수 있다.

library(dplyr)

# rename(dataFrame,(바꿀이름=원래이름)):속성이름변경
df_new <- df_raw
df_new


df_new <- rename(df_new,v2=var2)
df_new
> # rename(dataFrame,(바꿀이름=원래이름)):속성이름변경
> df_new <- df_raw
> df_new
  var1 var2
1    1    2
2    2    3
3    1    2
> 
> 
> df_new <- rename(df_new,v2=var2)
> df_new
  var1 v2
1    1  2
2    2  3
3    1  2

 

(7) table()

: 데이터 갯수를 보여줌

table(mpg$test)
> table(mpg$test)

fail pass 
 106  128 

 

(8) table()

: (빈도)막대그래프,히스토그램

library(ggplot2)
qplot(mpg$test)

 

3. 기타

(1) %in%

: 특정값이 벡터안에 있는가?

math=90
math %in% c(70,80,90,100)
> source('C:/bigdata/projects/chap5/5-3_파생변수.R', echo=TRUE)

> math=90

> math %in% c(70,80,90,100)
[1] TRUE

 

(2) rm(변수)

: 변수를 메모리에서 삭제

a=90
a
remove(a)
a
> a=90
> a
[1] 90
> rm(a)
> a
에러: 객체 'a'를 찾을 수 없습니다

 

(3) ifelse(x,a,b)

: x조건을 만족하면 a, 그렇지않으면 b를 출력

mpg$test=ifelse(mpg$total>=20,"pass","fail")
반응형