gpt4 book ai didi

r - 如何在 R 中使用 ifelse 条件从向量中删除

转载 作者:行者123 更新时间:2023-12-04 09:12:05 28 4
gpt4 key购买 nike

我有一个值为 (1,2,3,4) 的向量 a 和另一个值为 (1,1,0,1) 的向量 b。使用 b 中的元素作为标志,我想在元素 b 中找到 0 的相同位置从 A 中删除矢量元素。

  a <- c(1,2,3,4)
b <- c(1,1,0,1)
for(i in 1:length(b))
{
if(b[i] == 0)
{
a <- a[-i]
}
}

我得到了想要的输出

a [1] 1 2 4

但是使用 ifelse,我没有得到所需的输出。

    a <- c(1,2,3,4)
b <- c(1,1,0,1)
for(i in 1:length(b))
{
a <- ifelse(b[i] == 0,a[-i],a)
}

输出:

a [1] 1

如何在这种情况下使用 ifelse?

最佳答案

我认为 ifelse 在这里不是正确的函数,因为 ifelse 给出与输入长度相同的输出,我们想在这里对值进行子集化。您也不需要循环。你可以直接做

a[b != 0]
#[1] 1 2 4

数据

a <- 1:4
b <- c(1, 1, 0, 1)

关于r - 如何在 R 中使用 ifelse 条件从向量中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59561276/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com