我必须使用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])), 请帮忙!谢谢,帕维尔
答案 0 :(得分: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,请随意复制我的答案并获得对答案的认可,只需尝试关闭已回答的问题即可。
答案 1 :(得分: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]
如果您想要位置的行和列索引,那么还有一两步,但是如果您这样做则不清楚。 (注意,逻辑将按列顺序排列。)