我正在学习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个值。
任何人都可以帮我解决这个问题吗?
非常感谢。
答案 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))