2017-06-22 57 views
1

對於一列,我已經得到了以下工作,但需要將其應用於所有列。每列A01A02等需要使用crossprod()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 

回答

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

我不認爲na.rm被劃分爲colSums問題。因爲如果列中有任何NA,那麼交叉產品首先是NA

+0

非常感謝,完美的作品。比我想象的要簡單得多。我正在嘗試使用for循環 – Mike

相關問題