如何将Vec2中大于600的数值存入新向量而非输出布尔值?
解决方法
你的代码里Vec2 > 600确实只会返回一个布尔向量,标记每个元素是否满足条件。要提取对应的数值,直接用这个布尔向量作为索引去筛选原向量即可:
set.seed(75) Vec2 <- sample(0:999, size = 100) # 提取所有大于600的数值到va中 va <- Vec2[Vec2 > 600] print(va)
原理说明
R中布尔向量可以直接用作向量的索引:当你把Vec2 > 600放到Vec2[]的方括号里时,R会保留所有对应位置为TRUE的元素,也就是你要的大于600的数值。
另一种方法(使用subset函数)
你也可以用subset()函数来实现同样的效果,语法更直观:
va <- subset(Vec2, Vec2 > 600)
内容的提问来源于stack exchange,提问作者Obida
相关产品推荐
相关产品推荐

