Oi, Adriano, tudo bem?
Desculpe a demora em te responder!
Entendo que a sintaxe possa parecer um pouco confusa no início, mas vamos tentar desmembrá-la para entender melhor.
A expressão mean.category[mean.category$Category == dados_2[i,"Category"],"mean"] está fazendo o seguinte:
mean.category$Category == dados_2[i,"Category"]: aqui, estamos comparando cada valor da coluna "Category" do dataframe mean.category com o valor da coluna "Category" na linha i do dataframe dados_2. Isso vai resultar em um vetor de valores TRUE/FALSE, onde TRUE indica que o valor na linha i de dados_2["Category"] é igual ao valor correspondente em mean.category$Category.mean.category[ , "mean"]: nessa parte, estamos selecionando a coluna "mean" do dataframe mean.category.mean.category[mean.category$Category == dados_2[i,"Category"],"mean"]: juntando tudo, estamos selecionando o valor da coluna "mean" onde a coluna "Category" de mean.category é igual à coluna "Category" na linha i de dados_2. Em outras palavras, estamos pegando a média da categoria correspondente à linha i de dados_2.
Então, para responder à sua pergunta, a operação == vai retornar um vetor de valores TRUE/FALSE, mas quando usamos esse vetor para indexar mean.category, ele vai retornar as linhas correspondentes de mean.category onde o valor é TRUE.
Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!