【发布时间】:2020-08-30 03:15:35
【问题描述】:
我正在尝试使用其他两个向量来索引一个向量。我可以毫无问题地从第一个向量索引,但我从第二个值的条件索引一直导致问题。
我的示例代码如下
h=rep(seq(1:24),90)
m=rep(1:3,each=24*30)
d=rep(1:30,each=24*3)
我的目标是使用 match(或其他更适合的函数)来确定哪些小时值对应于 m=1 或 m=2 和 d=2 或 3 的所有实例
我的尝试如下
hin=match(m,1)|(match(m,2)&match(d,2:3))
在这种情况下,元素 1:720 和 745:793 应为 True,但只有 1:720 为 TRUE。如何执行上述参数的第二部分,以便识别后面的值?
编辑
创建一个重现性更高的示例:
h2=rep(seq(1:5),4)
d2=rep(rep(1:2,each=5),2)
m2=rep(1:2,each=10)
目标是创建一个包含 10 TRUE、5 FALSE、5 TRUE 的逻辑向量 (m=1 或 (m=2 and d=2)) 最终使用这个逻辑向量将创建一个新的 h2 删除元素 11:15
目标输出:
hin2=c(rep("TRUE",10),rep("FALSE",5),rep("TRUE",5))
h2new=c(rep(seq(1:5),2),rep(NA,5),seq(1:5))
hin2
[1] "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE" "FALSE"
[12] "FALSE" "FALSE" "FALSE" "FALSE" "TRUE" "TRUE" "TRUE" "TRUE" "TRUE"
h2new
[1] 1 2 3 4 5 1 2 3 4 5 NA NA NA NA NA 1 2 3 4 5
【问题讨论】: