Я новичок в циклах и функциях, и я не хочу использовать функцию duplicated (). Если я бегу по всему диапазону вектора (я в 1: длина), он считает последний как повтор, потому что он сам читает. Но когда я пытаюсь указать диапазон для l oop как один индекс перед последним в следующем примере, я получаю это:
a=c(2,21,4,2,33,21,8,3,7,2)
my_function=function(a){
l=length(a)
for (i in 1:(l-1))
if(a[i] %in% a[(i+1):l]) {
print(paste("The number in index", i, "is",a[i],"and it occurs again in the vector"))
}}
my_function(a)
Эта функция не считает последний индекс, который повторяется:
[1] "The number in index 1 is 2 and it occurs again in the vector"
[1] "The number in index 2 is 21 and it occurs again in the vector"
[1] "The number in index 4 is 2 and it occurs again in the vector"
Другая возможность:
a=c(2,21,4,2,33,21,8,3,7,2)
my_function=function(a){
l=length(a)
for (i in 1:l)
if(a[i] %in% a[(i+1):(l-1)]) {
print(paste("The number in index", i, "is",a[i],"and it occurs again in the vector"))
}}
my_function(a)
И эта функция сообщает о повторении в индексе перед последним:
[1] "The number in index 1 is 2 and it occurs again in the vector"
[1] "The number in index 2 is 21 and it occurs again in the vector"
[1] "The number in index 9 is 7 and it occurs again in the vector"
[1] "The number in index 10 is 2 and it occurs again in the vector"
Итак .... Я не могу сказать, нужна ли мне вложенность для l oop или что еще мне не хватает. Любые идеи будут очень признательны!