使用R中的两个fors优化算法

时间:2016-10-19 09:24:40

标签: r apply lapply

我遇到了以下问题:

我想重新组织我的桌子:

df <- data.frame(A=c(1,0,1), B=c(1,0,1), C=c(0,1,1))

  A  B  C
x 1  1  0
y 0  0  1
z 1  1  1

进入框架:

  AB  AC  BC
x  1   0   0
y  0   0   0
z  1   1   1

使用每列的连接。

我可以通过使用两个函数来实现它,但它实际上耗费大量数据&#34;我正在寻找一种优化功能。我发现apply在这种情况下很有用,但我不知道在这种情况下如何使用它。

有人能给我一个提示,如何解决上述问题?

1 个答案:

答案 0 :(得分:1)

这将使用lapply和dplyr的组合。 它列出了列的乘积,然后将其绑定到单个数据帧中。

library(dplyr)
lapply(1:(ncol(df)-1), function(n){
  out <- df[,n] * df 
  names(out)  <- paste0(names(df)[n] ,names(df))
  out %>% select(c((n+1):ncol(df)))
}) %>% bind_cols()