我想从相同的数据中提取 2 个向量的子集,其中replace=TRUE
.
即使两个向量可以包含相同的值,它们在同一索引位置也不能相同。
例如:
> set.seed(1)
> a <- sample(15, 10, replace=T)
> b <- sample(15, 10, replace=T)
> a
[1] 4 6 9 14 4 14 15 10 10 1
> b
[1] 4 3 11 6 12 8 11 15 6 12
> a==b
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
在这种情况下,向量a
and b
在索引 1 处包含相同的值(值==4),这对于我的目的来说是错误的。
有没有简单的方法来纠正这个问题?
可以在subset
step?
或者我应该逐个元素地进行循环检查,如果值相同,则进行另一个选择b[i]
并再次检查是否不相同无限期?
非常感谢!
我的想法是,不要获取 2 个长度为 10 的样本并进行替换,而是获取 10 个长度为 2 的样本而不进行替换
library(purrr)
l <- rerun(10,sample(15,2,replace=FALSE))
中的每个元素l
是长度为 2 的整数向量。这两个整数保证不同,因为我们指定replace=FALSE
in sample
# from l extract all first element in each element, this is a
a <- map_int(l,`[[`,1)
# from list extract all second elements, this is b
b <- map_int(l,`[[`,2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)