A: como encontrar o valor mais próximo em um vetor


Você pode usar a seguinte sintaxe básica para encontrar o valor mais próximo entre os elementos de dois vetores em R:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Encontrando o valor mais próximo em um vetor em R

Suponha que temos os dois vetores a seguir em R:

 #definevectors
vector1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector2 <- c(3, 5, 8, 11)

Agora suponha que para cada valor no primeiro vetor, queremos encontrar o valor mais próximo no segundo vetor.

Podemos usar a seguinte sintaxe para fazer isso:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

 [1] 3 3 3 3 5 5 8 8 8 11

Veja como interpretar o resultado:

  • Para o primeiro valor de vector1 (1), o valor mais próximo de vector2 é 3 .
  • Para o segundo valor de vector1 (2), o valor mais próximo de vector2 é 3 .
  • Para o terceiro valor de vector1 (3), o valor mais próximo de vector2 é 3 .
  • Para o quarto valor de vector1 (4), o valor mais próximo de vector2 é 3 .
  • Para o quinto valor de vector1 (5), o valor mais próximo de vector2 é 5 .

E assim por diante.

Nota : Este método assume que os valores do segundo vetor são estritamente crescentes. Se ainda não tiver feito isso, talvez seja necessário classificar o segundo vetor primeiro.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como calcular a média por grupo em R
Como calcular a média das colunas em R
Como somar colunas específicas em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *