2017-09-06 8 views
3

I가 키 데이터베이스에서 들어오는 데이터 : 같은 값 쌍 : 년도 : 2012 분야 : '화학' 주제 : '일반 화학' 주제 : ' 일반, 유기 및 생화학 'R의 dplyr 또는 purrr GROUP_BY는 벡터의 나열

incoming = tibble(field = c('year', 'discipline', 'subject', 'subject'), 
setting = c(2012, 'Chemistry', 'General Chemistry', 'General, Organic, and Biochemistry')) 

I 키를 GROUP_BY하고, 같은 값 목록 = 해당 그룹의 모든 값의 벡터 만들 싶습니다

$year = 2012 
$discipline = 'Chemistry' 
$subject = c('General Chemistry', 'General, Organic, and Biochemistry') 

내가 아는을 붙일 수 있고() 그것들을 분리 된 문자열로 분해 한 다음 다시 분리하십시오 ... 그러나 한 단계로 처리 할 수있는 깔끔한 기능이 있다고 생각합니다. 제안?

나는 이런 식으로 뭔가있을 것입니다 생각하고 있어요,하지만 난 파이프의 끝에서 무엇을 넣어 잘 모르겠어요 :

processed = incoming %>% 
    group_by(field) %>% 
    awesome_listmaker_function() 

답변

3
split(incoming$setting, incoming$field) 
# $discipline 
# [1] "Chemistry" 
# 
# $subject 
# [1] "General Chemistry"     "General, Organic, and Biochemistry" 
# 
# $year 
# [1] "2012" 

당신이 여러 그룹을 수신하는 경우 시간이 데이터베이스에서 나온다면 조금 더 복잡해집니다.