使用apply:维度数不正确

时间:2016-12-07 15:07:16

标签: r apply

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

无问题地工作

2 个答案:

答案 0 :(得分:0)

我们可以rowSums进行矢量化

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

或另一种有效的选择是

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

答案 1 :(得分:0)

我相信

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