使用函数创建包含未使用元素的新数据框

Using a function to create a new dataframe with unused elements

我有两个包含三个元素的向量。总共有二十种组合,将所有六个元素重新排列成具有三个元素的两个向量的不同集合。我需要编写 R 代码来做到这一点。

我当前的代码设置了两个向量,将它们组合成一个向量,创建了一个数据框,其中包含一个大小为 3 的单个向量的所有二十种组合。我现在正在尝试编写一个函数,通过将 20 个向量中的每一个与包含所有元素的向量进行比较,并查看哪些元素未使用 (setdiff),来创建第二个大小为 3 的向量。但是,我不断得到一个空的新向量。请帮忙。

drug<-c(36, 60, 39)
placebo<-c(73, 55, 70)
drugandplacebo<-c(drug,placebo)
drugandplacebo
number<-1:20
t(number)
allcombdrug<-combn(drugandplacebo,3)
allcombdrug
tallcombdrug<-t(allcombdrug)
tallcombdrug
tallcombdrub<-data.frame(tallcombdrub)
tallcombdrug

func1 <- function(tallcombdrug) {
  allcorespplac <- data.frame()  

  for (i in 1:length(tallcombdrug)) { 
    allcorespplac[i] <- setdiff(drugandplacebo,tallcombdrug[i])
  }
}
func1
allcorespplac
#list with all all combinations of three
l1 <- combn(c(drug, placebo),3,simplify = FALSE)
#list with all remaining values not in l1
l2 <- lapply(l1, function(x) c(drug,placebo)[!c(drug,placebo) %in% x])

更新:跟进

library(data.table)
cbind(
  data.table::rbindlist( lapply( l1, as.data.frame.list ) ),
  data.table::rbindlist( lapply( l2, as.data.frame.list ) )
)