[R-br] Dúvidas sobre uma função

FHRB Toledo fernandohtoledo em gmail.com
Sexta Agosto 3 14:30:15 BRT 2012


Olha só... quem é vivo sempre aparece!

Matheus, seu CMR não é muito claro, mas vamos ver se entendi o problema e
essa solução resolve!

# sua matriz...
matriz <- matrix(c(1, 2, 4, 4,
                   3, 6, 3, 1,
                   7, 4, 8, 9,
                   1, 2, 2, 9), 4, 4, byrow = TRUE)

# outra matriz um pouco maior!
outra <- matrix(sample(1:10, 1000, replace = TRUE), 250, 4)

# a funcao...
funcao <- function(x)ifelse(sum(match(x, c(1, 2, 3)), na.rm = TRUE) != 0,
'tem', 'nao')

# aplicando-a a sua e a outra matriz
apply(matriz, 1, funcao)
apply(outra, 1, funcao)

A lógica por tras da função é: faz-se um match nos valore da linha da
matriz com o seus valores alvo (1, 2 e 3), retornando a posição desses
valores na linha ou NA! depois soma-se esses valores, excluindo os NA, se a
soma for diferente de zero pelo menos um dos numeros (1, 2 ou 3) têm na
referida linha!

Resta só agora esperarmos por uma solução muito mais elegante dos colegas
da lista.

abraço,
FH

2012/8/3 Matheus Mendes <mendesmhs em hotmail.com>

> Bom dia...****
>
> Estou com um trabalho a ser feito e gostaria de solicitar ajuda.****
>
> Tenho uma planilha com a seguinte estrutura:****
>
> ** **
>
> Primeiro Segundo Terceiro Quarto****
>
> 1                2                  4                4               ****
>
> 3                6                  3                1****
>
> 7                4                   8               9****
>
> 1                2                   2               9****
>
> ** **
>
> Preciso identificar quais as linhas que recebem os números 1, 2, 3 e 4,
> não importando a ordem, ou seja, se é primeiro, segundo, ...****
>
> Estou com dúvidas para fazer uma função para este fim...****
>
> Grato****
>
>           ****
>
> Matheus Henrique Silveira Mendes****
>
> Engenheiro Agrônomo - UFLA****
>
> Mestre em Genética e Melhoramento de Plantas – UFLA****
>
> Doutorando em Genética e Melhoramento de Plantas – UFLA****
>
> (35)91243078 (TIM)****
>
> (35)98871518 (VIVO)****
>
> ** **
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120803/ee6edd95/attachment.html>


Mais detalhes sobre a lista de discussão R-br