如何在R语言中保留向量的每第四个元素并置空其余元素?
R语言保留向量每第四个元素的实现方法
针对你的需求,这里提供两种简洁的实现方式:
方法一:索引定位替换
先创建一个与原向量长度相同、全为空字符串的向量,再通过索引定位每第四个元素,将原向量对应位置的值赋值过去:
# 原向量 dat <- c("2000", "2050", "2100", "2150", "2200", "2250", "2000", "2350", "2400", "2450") # 初始化结果向量为全空字符串 result <- rep("", length(dat)) # 定位每第四个元素的索引(4、8...),替换为原向量对应值 result[seq(4, length(dat), by = 4)] <- dat[seq(4, length(dat), by = 4)] # 输出结果 result
运行后得到目标结果:
[1] "" "" "" "2150" "" "" "" "2350" "" ""
方法二:条件判断赋值
利用ifelse函数直接根据位置条件赋值,一行代码搞定:
dat <- c("2000", "2050", "2100", "2150", "2200", "2250", "2000", "2350", "2400", "2450") result <- ifelse(seq_along(dat) %% 4 == 0, dat, "")
其中seq_along(dat)生成与向量长度匹配的序列(1到10),%%4 ==0判断当前位置是否为4的倍数,满足条件则保留原元素,否则置为空字符串。
内容的提问来源于stack exchange,提问作者temor
相关产品推荐
相关产品推荐

