如何使用%%运算符生成每4个元素仅末尾为1的循环向量?
用R语言的%%运算符构建特定循环向量
原代码1:nrow(mtcars) %% 4执行后生成的序列为:1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0
需求:使用%%运算符构建每4个元素仅第4位为1、其余为0的循环向量,目标序列示例为:0 0 0 1 0 0 0 1 0 0 0 1
实现方法
方法一:用ifelse做条件转换
通过判断取余结果是否为0,将0替换为1,其余替换为0:
ifelse(1:nrow(mtcars) %% 4 == 0, 1, 0)
方法二:将逻辑判断结果转为数值
R中逻辑值TRUE会被转为1,FALSE转为0,直接对取余等于0的结果做类型转换即可:
as.integer(1:nrow(mtcars) %% 4 == 0)
两种方法都能生成符合要求的循环向量,每4个元素里前三位为0,第四位为1,循环覆盖整个序列。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

