2014-10-17 4 views
3

내가 가지고있는는 dataframe 재편 - 상관 변수에서 두 개의 열

에서 생성 안양

var1 var2 Freq 
1 a b 10 
2 b a 5 
3 b d 10 

아래

help <- data.frame(var1 = c("a", "b", "b"), var2 = c("b", "a", "d"), Freq = c(10, 5, 10)) 

AB의 상관 관계가 바과 동일, 나는 하나의 행로 결합 바라고 모양은

var1 var2 Freq 
1 a b 15 
2 b d 10 

어떤 생각? 기본 R에서

+0

= FALSE ', 당신은'이 var1 = PMIN (VAR1, VAR2)'와'VAR2 = PMAX (VAR1, VAR2)'을 변경할 수있는 통합 후 간단해야합니다. – Arun

답변

2

여기 하나 개의 방법 :`stringsAsFactors를 사용하여

setNames(aggregate(help$Freq, as.data.frame(t(apply(help[-3], 1, sort))), sum), 
     names(help)) 

# var1 var2 Freq 
# 1 a b 15 
# 2 b d 10 
+0

고마워, 스벤. 도움 [-3]이 무엇을 의미하는지 설명해 주시겠습니까? – bpace

+0

@bpace'help [-3]'명령은 음의 색인 생성의 예입니다. 그것은 세 번째 것을 제외하고'help '의 모든 열을 반환합니다. –

+0

그레이트 ... 고마워요! – bpace

0

:

do.call(rbind, 
by(dat,rowSums(sapply(dat[,c("var1","var2")],as.integer)), 
    function(x)data.frame(x[1,c("var1","var2")], 
         Freq= sum(x[,"Freq"])))) 

    var1 var2 Freq 
3 a b 15 
5 b d 10 

나는 당신의 열의 정수 표현을 합산하여 먼저 그룹화 변수를 만들 수 있습니다. 그런 다음 그룹별로 주파수의 합계를 수행합니다. 마지막으로 결과를 바인드하여 새 data.frame을 가져옵니다.