计算R中出现的次数

时间:2014-03-05 15:02:58

标签: r apply

我正在学习R而我遇到了一个我不知道如何解决的问题。我有一个类似于以下的输入子集,有一个client_id和7个整数:

(client_id, 10, 8, -5, 8, 1, -23, 12)

我想返回相同的向量,但有一个额外的字段。首先,包含任何其他值的负数的一个。对于上面的示例,结果将是:

(client_id, 10, 8, -5, 8, 1, -23, 12, 2)

因为7个整数中只有2个负数。

第二个字段是0的值的数量

(client_id, 10, 8, -5, 8, 1, -23, 12, 2, 3)

因为0到10之间有3个值。

任何人都可以帮我解决这个问题吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

这个怎么样:

> t <- c("client_id", 10, 8, -5, 8, 1, -23, 12) # create vector
> nums <- as.numeric(t[2:length(t)]) # get numbers only from vector
> sum(nums < 0) # Counts the numbers less that 0
[1] 2
> sum(nums > 0 & nums < 10) # counts the number > 0 and < 10
[1] 3
> t <- append(t,sum(nums < 0)) # append to original vector
> t <- append(t,sum(nums > 0 & nums < 10))
> t
 [1] "client_id" "10"        "8"         "-5"        "8"         "1"         "-23"       "12"        "2"         "3"        
> 

答案 1 :(得分:0)

如果您的矢量为x,则为

x <- c(x, length(which(x[-1]<0)), length(which(x[-1]>=0 & x[-1]<=10)))

回答@Nishanth:你也可以

x <- c(x, sum(x[-1]<0), sum(x[-1]>=0 && x[-1]<=10))