您好删除行我中的R A<-array(c(1:12), dim=c(6,2))
从阵列
阵列对于第3行欲保持的行,其在第一列中的值小于3,并在最后3行我想保留其第一列中的值小于4的那些行。
任何人都可以帮助我吗?
到目前为止我试过A[A[,1]<3,]
。这确实照顾了第一条标准,但我不知道如何处理第二条。
您好删除行我中的R A<-array(c(1:12), dim=c(6,2))
从阵列
阵列对于第3行欲保持的行,其在第一列中的值小于3,并在最后3行我想保留其第一列中的值小于4的那些行。
任何人都可以帮助我吗?
到目前为止我试过A[A[,1]<3,]
。这确实照顾了第一条标准,但我不知道如何处理第二条。
使用&
和|
构建要保持子集:
Arow = 1:nrow(A)
A[ (A[,1] < 3 & Arow <= 3) |
(A[,1] < 4 & Arow > 3) ,]
你不必把它写多行,当然。这里的一个稍短版本:
A[A[,1] < 3 + (Arow > 3),]
在算术,逻辑矢量Arow > 3
被视为0时假,1为真时。
您的方法更一般 – akrun
尝试
A[c(head(A[,1],3) <3, tail(A[,1],3) <4),]
上面方法没有考虑到与用于nrow> 6 nrow> 6.可能的选项的数据集(虽然不是优雅的@弗兰克的)
A1 <- A[c(1:3,(nrow(A)-2):nrow(A)),]
A1[A1[,1] < rep(c(3,4), each=3),]
也许'A [c(head [A [,1],3)<3,tail(A [,1],3)<4),]' – akrun
THANK YOUUUUUUUUUUU – Namch96
请接受Frank的解答,因为它更通用 – akrun