enframe() : Convert vectors to data frames

벡터를 데이터프레임으로 바꾸고 싶을 때
tibble
Author

chichead

Published

October 12, 2022

Today Function : enframe()

오늘의 함수는 tibble 패키지의 enframe() 함수입니다. enframe() 함수는 atomic vector나 리스트를 1개 혹은 2개의 칼럼을 가진 데이터프레임으로 만들어줍니다. 리스트를 enframe() 함수에 넣고 돌리면 중첩된 tibble이 나옵니다. 만일 2개의 칼럼의 데이터프레임을 vector 혹은 리스트로 변환하고 싶으면 deframe() 함수를 사용하면 됩니다.


Usage

enframe(x, name = "name", value = "value")

deframe(x)


Argument

x : enframe() 함수에는 벡터가, deframe() 함수에는 1~2열 짜리 데이터프레임이 들어갑니다
name, value : name과 value로 지정하고 싶은 텍스트를 입력합니다. 만약 name이 NULL이라면 1열의 데이터프레임이 출력됩니다.


Example

library(tibble)

# 1부터 3까지 Unnamed Numeric vector를 enframe에 넣으면
enframe(1:3)
# A tibble: 3 × 2
   name value
  <int> <int>
1     1     1
2     2     2
3     3     3
# 이번엔 Named Numeric vector를 입력해봅니다
enframe(c(a = 1, b = 2, c = 3))
# A tibble: 3 × 2
  name  value
  <chr> <dbl>
1 a         1
2 b         2
3 c         3
# list를 입력하면 중첩된 tibble이 나옵니다
list_example <- list(
  a = 1,
  b = "orange",
  c = 2:3,
  d = c(delta = 4)
)

enframe(list_example)
# A tibble: 4 × 2
  name  value    
  <chr> <list>   
1 a     <dbl [1]>
2 b     <chr [1]>
3 c     <int [2]>
4 d     <dbl [1]>
# deframe은 1~2개의 칼럼을 가지고 있는 데이터프레임만 사용가능합니다
deframe(enframe(3:1))
1 2 3 
3 2 1 
deframe(tibble(a = as.list(1:3)))
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3