[R-br] aplicando cálculo sobre linhas de um dataframe

Sandro Sperandei ssperandei em hotmail.com
Sexta Maio 18 15:28:48 BRT 2012


Vitor,

A forma mais simples que posso oferecer, sem conhecer a sua estrutura de dados, é essa:

soma = as.vector(rep(0,dim(x)[1]))

for(i in 1:dim(x)[1]){
              for(j in c(seq(1,dim(x)[2]-1,2))){

                                                soma = soma + ifelse(is.na(x[i,j]) | is.na(x[i,(j+1)]), 0, ifelse(x[i,j]==x[i,(j+1)], 1, 0))
                                                }
             }

Onde “x” é a matriz de dados originais

S







From: Vitor Aguiar 
Sent: Friday, May 18, 2012 2:30 PM
To: r-br em listas.c3sl.ufpr.br 
Subject: [R-br] aplicando cálculo sobre linhas de um dataframe

Olá. Postei essa pergunta ontem mas não obtive resposta. Desculpe por estar postando novamente. 

Tenho um dataframe com milhares de linhas com valores NAs e não-NAs. Suponhamos a seguinte linha:

1. NA NA NA NA NA NA 6 6 NA NA 8 11 NA NA 17 18 NA NA 10 10 11 13 8 9 11 11 11 11

Vamos considerar os dados em pares. Assim, meu primeiro par é NA NA, o quarto par é 6 6. Há alguma forma de eu contar quantos pares iguais eu tenho em cada linha do dataframe? Assim, nessa linha por exemplo eu teria o resultado 4, pois tenho 4 pares de valores iguais (6 6, 10 10, 11 11, 11 11).
Então preciso aplicar o cálculo para todas as linhas.

O caminho seria um loop onde eu contaria dados[i, 1] == dados[i, 2]?


Obrigado,
Vitor


--------------------------------------------------------------------------------
_______________________________________________
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/20120518/059a3519/attachment.html>


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