我有像这样的数据代码连续数据
dat <-data.frame(A = c(“ V1”,“ V2”,“ V3”,“ V4”),B = c(“ V1”,“ V2”,“ V3”,“ V5”))
我想将每一个的组合并打印输出为
A的输出
V1 => V2V3V4
V2 => V1V3V4
V3 => V1V2V4
V1V2 => V3V4
V1V3 => V2V4
V3V4 => V1V2
V2V4 => V1V3
V2V3V4 => V1
V1V3V4 => V2
V1V2V4 => V3
类似的方式B组合我的代码是
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
。那就是问题所在
您期望的输出似乎有些奇怪(多个组合是相同的),但是我知道可能很难解释您想要什么。以下代码可能会给您一些启发。它接受所有组合,并在其前面=>
显示该组合中未包含的内容。
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))
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句