Quiz

  1. 주어진 데이터셋의 학생별 성적이력을 unstack 하는 함수를 작성해주세요~

필수 요건 : R 기본제공 함수만 이용해야합니다 for 구문은 사용할 수 없습니다

grade <- 
  as.data.frame(cbind(
    ID = c(LETTERS[1:5]),
    GPA = list('A+','F', c('C-','B','A+'), c('A','A+'), 'D')
  ))

Answer

expand.fn <- function(x) data.frame(ID = x$ID, GPA = x$GPA)
apply.fn <- function(x) apply(x, 1, expand.fn)
concat.fn <- function(x) do.call(rbind, x)
"%>%" <- function(x, f) f(x)

grade %>% apply.fn %>% concat.fn
##   ID GPA
## 1  A  A+
## 2  B   F
## 3  C  C-
## 4  C   B
## 5  C  A+
## 6  D   A
## 7  D  A+
## 8  E   D