2017-11-17 7 views
-1

정리가 깔끔한 데이터 프레임이 있는데, 하나의 용어와 행마다 항목이 있습니다. 그것은 다음과 같습니다하나의 열을 다른 열을 기반으로 여러 열로 구성하십시오.

num_topic, term 
1, blue 
1, green 
2, dog 
2, cat 
나는 인간의 가독성

topic1, topic2 
blue, dog 
green, cat 

이 꽤 직관적 인 것 같다,하지만 난 그것을 수행하는 방법을 알아낼 수 없습니다에 대한 별도의 열에서 각 항목을 마련하고자

. 링크 된 질문과 동일하지 않습니다. 각 용어에 고유 한 식별자가 없기 때문입니다. 각 주제에 대한 용어 목록 만 있습니다.

+0

이것은 피벗 – Keith

+0

라고합니다. 매우 가까이에 있습니다. 그러나 문제는 단지 주제의 열을 원한다는 것입니다. 주제의 각 용어에 대한 고유 식별자는 실제로 없습니다. –

+0

@Adam_G 그런 다음 임시 식별자를 추가 할 수 있습니까? 예 : ungroup() %> % spread (num_topic, term) %> % select (-id)와 같은 무언가가 필요하다. ' –

답변

2

다음은 어때요? 여기서는 num_topic 그룹당 항목이 "순서대로"있다고 가정합니다. 즉 bluedog에 속하며 greencat에 속해 있습니다.

df <- read.csv(text = 
    "num_topic,term 
    1,blue 
    1,green 
    2,dog 
    2,cat"); 

df <- as.data.frame(sapply(split(df, df$num_topic), function(x) x$term)); 
df; 
#  1 2 
#1 blue dog 
#2 green cat 

설명 : num_topic에 분할과 함께 열 term을 결합한다.

+2

또는'unstack (df, term ~ num_topic) '을 사용하십시오. – akrun

+1

@akrun 확실히 최단 해결책을 얻으실 수 있습니다! –