5. 속성 확인 및 변환
setwd('c:/users/is2js/R_da/')
#### 원소<벡터<리스트 속성확인 ####
# class()
# if문에서 T/F 확인은 is.numeric() / is.character() / is.data.frame() / is.list()
#### 원소<벡터<리스트 속성확인 ####
# as.numeric() / character()
# 문자열 속에 숫자가 있다면 가능
# 문자열 속에 문자가 있다면 -> NA(에러)가 남.
#### 데이터 준비 ####
aa = 1234
bb = "test"
cc = TRUE
dd = NA
class(aa)
class(bb)
class(cc)
class(dd) # NA는 logical이다.
class("NA") # 문자열은 그냥 character
is.numeric(aa)
is.numeric(bb)
is.numeric(cc)
is.numeric(dd)
is.character(aa)
is.character(bb)
is.character(cc)
is.character(dd)
aaa = 1:5
bbb = letters[1:5]
ccc = data.frame(a = aaa, b = bbb)
ddd = list(asdf = aaa, qwer = bbb)
class(aaa)
class(bbb)
class(ccc)
class(ddd)
is.numeric(aaa)
is.integer(aaa)
is.data.frame(ccc)
is.matrix(ccc)
is.list(ddd)
#### 속성 변환하기 ####
aaa = 1:5
bbb = letters[1:5]
ccc = data.frame(a = aaa, b = bbb)
ddd = list(asdf = aaa, qwer = bbb)
as.character(aaa) # 전부 따옴표가 붙는다.
as.numeric(bbb) # 문자는 숫자로 못바꿈 -> 각각이 NA 처리
as.numeric(c(123, "345", "ddd")) # 1차원 combine에서는 문자가 우선이라서 character순서를 가지고 있다. 문자열속 숫자만 numberic으로 변형된다.
as.matrix(ccc) # data.frame은 사각형을 유지한 상태이므로 matrix로 변형된다.
# matrix는 행이 [1,] [2,] 형태 / 원소는 ""로 나타남.
#### factor ####
# 다루기 힘들며, 익숙하지 않으면 피해야한다.
# 통계처리 전에 사용된다.
#factor는 1차원 벡터와 함께 levels로 우선순위를 둔다.
fac = factor(c(13, 22, 88), levels = c(88, 22, 13))
fac
#숫자로 구성되더라도 as.numeric()으로 변환하면, 우선순위만 표기된다.
as.numeric(fac) # 13, 22, 88 -> levels기반 우선순위 3, 2, 1 로 출력됨
# factor 숫자원소를 실제 숫자로 바꿀려면, as.character() -> as.numeric() 순으로 적용해야한다.
as.numeric(as.character(fac))
# 만약 levels를 주지 않는다 하더라도, 첫번째부터 우선순위가 적용되어, 1, 2, 3형태로 뽑아진다.
fac_2 = factor(c(13, 22, 88))
as.numeric(fac_2)
#### table #### - data.frame 칼럼 2개짜리에 대응하여 행/렬로 나타낸 뒤 빈도를 나타내준다.
# 2개 칼럼짜리 df 를 만들고 table()로 감싸주어 테이블을 만들자.
df = data.frame(var1 = rep(letters[1:2], 3),
var2 = rep(1:3, 2))
df
df_table = table(df)
df_table
class(df_table)
# 다시 data.frame으로 바꾸면 빈도칼럼이 생긴다.
as.data.frame(df_table)
'한의대 생활 > └ R studio 중급 문법' 카테고리의 다른 글
7. R 스크립트 파일 관리(*중요*) (0) | 2018.12.29 |
---|---|
6. R Clean code 작성법 (0) | 2018.12.29 |
4. 데이터 저장하기 ( R 기본제공 iris 데이터 가져오기 포함) (0) | 2018.12.29 |
3. 데이터 불러오기 ( readLines()로 구분자 구분시키는 TIP 포함) (0) | 2018.12.28 |
2. R 인코딩관련 문제 / 저장 및 불러오기 (1) | 2018.12.28 |