第一列与数据框的其他列之间的交叉编程

时间:2017-06-22 18:59:26

标签: r dataframe

我已经为一列提供了以下工作,但需要将其应用于所有列。每列A01A02等需要使用CAG与列crossprod()相乘,然后每列应除以该列的总和

#My data frame
data <- data.frame(CAG = c(13, 14, 15), A01 = c(6485,35,132), A02 = c(0,42,56))

#Sum each column independently
sumcolumn <- colSums(data[ , 2:ncol(height)], na.rm=TRUE)

# Work with column A01
result <- crossprod(data$`A01`, data$CAG) / sumcolumn

1 个答案:

答案 0 :(得分:2)

mat <- data.matrix(data)
c(crossprod(mat[, -1], mat[, 1])) / colSums(mat[, -1])

我认为na.rm中的colSums是个问题。因为如果列中有任何NA,则叉制产品将首先为NA