道歉令人困惑的标题,但我不知道如何表达我的问题。在R中,我有以下问题需要解决:
i
> 1 1 1 1 1 1 1 0 0 0 0 0 0 0
如何从向量z中移除向量p,以便向量一个新向量i现在有三次出现1次,三次出现0 less ,所以我需要做什么才能达到以下结果?在解决方案中,z中1和0的顺序无关紧要,它们可能只是随机顺序,而且还可能涉及其他数字。
$minPrice = min(array_column($pricearray, 'price'));
$i = array_filter($pricearray,
function($i) use ($minPrice) { return $minPrice === $i['price']; });
提前致谢!
答案 0 :(得分:1)
类似于@ VincentGuillemot的答案,但是在函数式编程风格中。使用purrr
包:
i <- z
map(p, function(x) { i <<- i[-min(which(i == x))]})
i
> i
[1] 1 1 1 1 1 1 1 0 0 0 0 0 0 0
答案 1 :(得分:0)
可能有很多更好的方法:
i <- z
for (val in p) {
if (val %in% i) {
i <- i[ - which(i==val)[1] ]
}
}
我更喜欢的另一种解决方案,因为它不需要测试(并且感谢弗兰克的建议):
for (val in p)
i <- i[ - match(val, i, nomatch = integer(0) ) ]