如何根据另一个向量中满足的条件从一个变量中获取元素向量?我这样做是为了能够绘制人口中的一部分。
我的尝试不起作用,导致NULL(空)向量:
a <- c(1,2,3,4,3,3,3,4,1,3,2,3) # Conditional values
b <- c(1,2,3,4,5,6,7,8,9,10,11,12) # Target values
df <- data.frame(a,b)
scissor <- function(x,n) {
for (i in 1:12) {
if (x[i,1] != n) {
x[-i,] # Remove row that does not have value n
}
}
}
vector <- scissor(df,3)
答案 0 :(得分:0)
你需要对你正在做的事情进行双重否定。
> b[!(a != 3)]
#[1] 3 5 6 7 10 12
但你可以为同样的结果做到这一点
> b[a == 3]
#[1] 3 5 6 7 10 12
使用数据框,它将是
> df$b[df$a == 3]
#[1] 3 5 6 7 10 12
仅适用于b
个值,
> df[df$a == 3, ]
# a b
#3 3 3
#5 3 5
#6 3 6
#7 3 7
#10 3 10
#12 3 12
表示数据框。