0

我必须使用 R 而不是 Matlab,而且我是新手。

我有大量重复的数据,如 1、2、3、4、5、6、7、8、9、10、1、2、3、4、5、6、7、8、9、10.. .

我需要找到值等于 1、4、7、10 的位置,以使用这些位置创建样本。

在这种情况下,它将是位置(=对应的值)1(=1)4(=4)7(=7)10(=10)11(=1)14(=4)17(=7)20(= 10) 等等。

在 MatLab 中它会是 y=find(ismember(x,[1, 4, 7, 10 ])),请帮忙!谢谢,帕维尔

4

2 回答 2

0

像这样的东西?

foo <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
bar <- c(1, 4, 7, 10)
which(foo %in% bar)
#> [1]  1  4  7 10 11 14 17 20

@nicola ,随意复制我的答案并获得对您答案的认可,只需尝试关闭已回答的问题。

于 2016-01-05T17:19:06.980 回答
0

%in% 运算符是您想要的。例如,

# data in x
targets <- c(1, 4, 7, 10)
locations <- x %in% targets
# locations is a logical vector you can then use:
y <- x[locations]

如果您想要位置的行和列索引,将会有一个或两个额外的步骤,但不清楚您是否这样做。(注意,逻辑将按列顺序排列)。

于 2016-01-05T17:19:21.783 回答