2016-12-07 67 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)])) 是你想要的

相关问题