You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何生成x[i]大于0时对应位置为TRUE的逻辑向量y

错误原因分析

  • for循环内的赋值符号书写错误:你把R的赋值运算符<-误写为减号-,导致循环内仅执行了逻辑判断操作,没有将判断结果赋值给y[i],所以y一直保留初始化时的全FALSE状态。
  • 后续尝试的y-x>0写法逻辑有误:这里同样误用了减号,且无需基于初始化的y做运算,直接对原向量x做判断即可。

解决方法

方法1:使用R向量化运算(推荐)

R本身支持向量化逻辑判断,不需要手动写for循环,一行代码即可实现需求:

x <- c(-1,0,1,2)
y <- x > 0

运行后得到的y为 FALSE FALSE TRUE TRUE,完全符合要求。

方法2:修正后的for循环实现

如果需要用for循环实现,仅需修正循环内的赋值符号即可:

x <- c(-1,0,1,2)
y <- logical(length(x))

for (i in 1:length(x)){
  y[i] <- x[i] > 0
}

内容的提问来源于stack exchange,提问作者Magnus Moller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:24:02