R中的条件和-通过调用一次和函数计算两个不同的和

R中的条件和-通过调用一次和函数计算两个不同的和,r,R,我想计算一个向量中小于10的数的和,并计算这些数在R中出现的次数 为此,我编写了以下代码: sum = sum(numbers[which(numbers<=10)]) count = sum(numbers<=10) 有没有办法合并这些语句?不是两次调用sum函数?这有点巴洛克风格,但这只会调用sum函数,而sum函数只调用一次,并且仍然使用该值两次: numbers <- 10:1 mapply(do.call, c( function(x){sum(numbers[x

我想计算一个向量中小于10的数的和,并计算这些数在R中出现的次数

为此,我编写了以下代码:

sum = sum(numbers[which(numbers<=10)])
 count = sum(numbers<=10)

有没有办法合并这些语句?不是两次调用sum函数?

这有点巴洛克风格,但这只会调用sum函数,而sum函数只调用一次,并且仍然使用该值两次:

numbers <- 10:1
mapply(do.call, c( function(x){sum(numbers[x])}, #first function
                   length),                      # count of numbers <5
                MoreArgs=list(list(which(numbers<5) )) )
#[1] 10  4

这有点巴洛克风格,但这只会调用sum,它只会使用一次值,并且仍然会使用两次值:

numbers <- 10:1
mapply(do.call, c( function(x){sum(numbers[x])}, #first function
                   length),                      # count of numbers <5
                MoreArgs=list(list(which(numbers<5) )) )
#[1] 10  4

您可以定义自己的函数:

sum_occ <- function(x) {c(sum = sum(x), occ = length(x))}

您可以定义自己的函数:

sum_occ <- function(x) {c(sum = sum(x), occ = length(x))}

当你说“列表”时,你实际上是指“向量”吗?@tospig是的,我的意思是vector你可以创建自己的自定义函数来完成这两个计算。当你说“列表”时,你实际上是指“向量”吗?@tospig是的,我的意思是vector你可以创建自己的自定义函数来完成这两个计算。