cumsum() 保持 returning 为逻辑但需要它 return 作为整数
cumsum() keeps returning as logical but need it to return as integer
如何运行编码为累积数字?
这是我的代码
x <- runif(50)
y <- 10
cumsum(x) <= y
它只是 returns 逻辑(布尔)
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
如果我尝试通过添加 as.numeric 或 as.integer 来更正它 returns
[1] 1 1 1 1 0 0 0 0 0 0
您返回的不是 cumsum(x)
的值,而是逻辑语句“cumsum(x)
小于或等于 y
”的值。此语句的结果是布尔值而不是数字。
如果 cumsum(x)
是 <=
y
,您的代码存在问题。每当你进行这些比较时,你都会得到一个逻辑向量。
但是,如果您正在寻找小于 y
的商品,您可以执行以下操作:
x <- runif(50)
y <- 10
idx <- which(cumsum(x) <= y)
x[idx]
idx
存储条件匹配的索引,即 cumsum(x) <= y
。要打印这些索引处的数字,您可以使用 x[idx]
.
输出将如下所示:
[1] 0.95362053 0.09553108 0.82016689 0.69883212 0.35495891 0.16966706
[7] 0.15281253 0.16532772 0.81920233 0.82249972 0.30146590 0.69536763
[13] 0.32764723 0.40601504 0.70189321 0.16597773 0.25304473 0.41667253
[19] 0.52499118 0.27216339 0.27347937
如何运行编码为累积数字?
这是我的代码
x <- runif(50)
y <- 10
cumsum(x) <= y
它只是 returns 逻辑(布尔)
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
如果我尝试通过添加 as.numeric 或 as.integer 来更正它 returns
[1] 1 1 1 1 0 0 0 0 0 0
您返回的不是 cumsum(x)
的值,而是逻辑语句“cumsum(x)
小于或等于 y
”的值。此语句的结果是布尔值而不是数字。
如果 cumsum(x)
是 <=
y
,您的代码存在问题。每当你进行这些比较时,你都会得到一个逻辑向量。
但是,如果您正在寻找小于 y
的商品,您可以执行以下操作:
x <- runif(50)
y <- 10
idx <- which(cumsum(x) <= y)
x[idx]
idx
存储条件匹配的索引,即 cumsum(x) <= y
。要打印这些索引处的数字,您可以使用 x[idx]
.
输出将如下所示:
[1] 0.95362053 0.09553108 0.82016689 0.69883212 0.35495891 0.16966706
[7] 0.15281253 0.16532772 0.81920233 0.82249972 0.30146590 0.69536763
[13] 0.32764723 0.40601504 0.70189321 0.16597773 0.25304473 0.41667253
[19] 0.52499118 0.27216339 0.27347937