2016-12-07 99 views
0
data <- data.frame(A = c(1:4), B = c(10:13), C = c(19:22)) 

數有誤,我想計算1/A + 1/C排明智使用適用於:尺寸

df$calc <- apply(data, 2, function(x) sum(1/x[,c(1,3)]) 

Error in x[, c(1, 3)] : incorrect number of dimensions 

我不明白爲什麼我應該在這裏得到一個錯誤,當

fun<- function(x){ 

f <- sum(1/x[,c(1,3)]) 
return(f) 
} 

fun(data[1,]) 
1.052632 

無問題工作

+0

難道你的意思是'應用(數據,2,函數(x)的總和(1/x [c(1,3)]))' – akrun

+0

或者它是'1/data [[「A」]] + 1/data [[「C」]]' – akrun

回答

0

我們可以做rowSums,因爲它是矢量化的

data$calc <- rowSums(1/data[c("A", "C")]) 

或者另一種有效的選擇是

Reduce(`+`, 1/data[c("A", "C")]) 
+1

謝謝大家。疲憊的眼睛... – Jixxi

0

我相信

df <- apply(data, 1, function(x) sum(1/x[c(1,3)])) 是你想要的

相關問題