2014-12-03 1 views
1

붙이기 I 다음 예제 데이터 프레임 가지고R에서 그룹 변수에 의해 데이터 프레임에서 문자열 변수를 접는 방법은 무엇입니까? 즉, 수직으로 대신에 수평으로

model <- c(1,1,1,1,2,2,3,3,3) 

variable <- letters[seq(1:9)] 

df <- data.frame(model , variable) 

    model variable 
1  1  a 
2  1  b 
3  1  c 
4  1  d 
5  2  e 
6  2  f 
7  3  g 
8  3  h 
9  3  i 

및 I가 "붕괴"모델 그룹화변수 필드 싶다. 변수이 숫자 인 경우 숫자는 이거나 다른 연산자입니다. 그러나,이 문자, 나는 붙여 넣기 값을하고 싶습니다.

model variable 
1  1 a b c d 
2  2  e f 
3  3 g h i 
+1

을 사용하면 t을하고자하는 경우 여러 개의 다른 열을 축소하려면 [** 여기 **] (http://stackoverflow.com/questions/26981385/r-collapse-all-column-by-an-id-column/26981611#26981611) – Henrik

답변

1

당신은 aggregate 사용할 수 있습니다

aggregate(variable ~ model, df, paste, collapse = " ") 
# model variable 
# 1  1 a b c d 
# 2  2  e f 
# 3  3 g h i 
+0

을 참조하십시오. !!! 동일한 집계 함수에서 여러 문자 필드를 접을 가능성이 있습니까? 그렇지 않다면 이것은 굉장합니다! –

+0

@ Illya-Big이 경우 예상되는 결과는 무엇입니까? –

+0

@ Illya-Big 내 의견에 링크를 확인하는 데 귀찮게 했습니까? – Henrik

2

... 또는 dcastreshape2 패키지 :

> reshape2::dcast(df, model~., value.var = "variable", fun.aggregate = paste, 
        collapse = " ") 
    model  . 
1  1 a b c d 
2  2  e f 
3  3 g h i 
1

또는를 data.table

library(data.table) 
setDT(df)[, list(variable=paste(variable, collapse=' ')), by=model] 
# model variable 
#1:  1 a b c d 
#2:  2  e f 
#3:  3 g h i 
+0

고맙습니다. 이것은 또한 좋습니다. –

관련 문제