2014-01-27 6 views
1

У меня есть код данных conatin данные, как этотКак распечатать комбинацию в r?

< Дат -data.frame (A = C ("V1", "V2", "V3", "V4"), B = C ("V1 », "V2", "V3", "V5"))

Я хотел бы принять сочетание каждого выхода один и печати, как

выходе

V1 => V2V3V4

V2 => V1V3V4

V3 => V1V2V4

v1v2 => V3V4

V1V3 => V2V4

V3V4 => v1v2

V2V4 => V1V3

V2V3V4 => V1

V1V3V4 = > V2

V1V2V4 => V3

подобный способ сочетание В мой код

vd<-data.frame() 
vd<-data.frame(A=c("V1","V2","V3","V4"),B=c("V1","V2","V3","V4")) 
vf<-length(vd) 
i<-1 
while(i<=vf) 
{ 
vd<-dat[,i] 
leng<-nrow(dat) 
selectru<-combn(vd,leng) 
fst<-selectru[i] 
select<-data.frame() 
select<-selectru[selectru[,1]!=selectru[i],] 
m<-length(select) 
select<-combn(select,m) 
snd <-apply(select,2,function(rows) paste0(rows, collapse = "")) 
cat(sprintf("\"%s\" =>\"%s\"\n", fst, snd)) 
i<-i+1 
} 

этот код не работает. Я не могу хранить несколько комбинаций в одном data.frame. вот проблема

ответ

1

Ваш желаемый результат кажется немного странным (несколько комбинаций одинаковы), но я понимаю, что это может быть трудно объяснить, что вы хотите. Следующий код может дать вам некоторое вдохновение. Он принимает все комбинации, и перед => он показывает, что не включено в эту комбинацию.

dat<-data.frame(A=c("V1","V2","V3","V4"),B=c("V1","V2","V3","V4")) 
for (h in 1:ncol(dat)) { 
    for (i in 1:(nrow(dat)-1)) { 
    combinations1 <- combn(nrow(dat), i) 

    for (j in 1:ncol(combinations1)) { 
     k <- combinations1[,j] 
     a <- (dat[k,h]) 
     a <- paste(a, sep="", collapse="") 
     b <-(dat[-k,h]) 
     b <- paste(b, sep="", collapse="") 
     cat(sprintf("\"%s\" =>\"%s\"\n", a, b)) 
    } 
    } 
} 
+0

Я действительно sorry.there нет повторяющихся combination.I поправили, что –

+0

его working..your great.thanks.Actually там нет повторений в наборе данных и комбинации. –

+0

можно сохранить эти значения печати –

Смежные вопросы