[R-br] Classificação de um data frame em função de outro

ASANTOS alexandresantosbr em yahoo.com.br
Segunda Abril 4 08:38:24 BRT 2016


Caros Listeiros,

          Tenho dois data frames DF1 e DF2, sendo que o primeiro
representa a comparação múltipla entre alguns tratamentos de DF2 e o p
valor correspondente. Eu gostaria de criar um variável groups dentro de
DF2 em função do valor de p de DF1, de foram que meu output final seja:

#
   trat      sp1      sp2      sp3      sp4    groups
1 P12A 4.653732 2.490977 4.236323 5.382113 "P12AvsP12BvsP12CvsP12D"
2 P12A 5.009581 2.254713 4.604529 4.842553 "P12AvsP12BvsP12CvsP12D"
3 P12A 4.809242 2.391435 4.675318 4.732977 "P12AvsP12BvsP12CvsP12D"
4 P12A 5.053077 2.483129 4.561690 5.311215 "P12AvsP12BvsP12CvsP12D"
5 P12A 5.356384 2.745474 4.616074 5.114969 "P12AvsP12BvsP12CvsP12D"
6 P12A 5.186120 2.384487 4.401133 5.041926 "P12AvsP12BvsP12CvsP12D"
...
  #
        Ou seja, se p=ou> que 0.05 eu vou juntando os níveis do
tratamento ("P12AvsP12BvsP12CvsP12D"), separados por vs, se não eu
repito o nome do nível ("P13A"), segue meu CRM abaixo e minha função que
não esta fazendo isso, muito obrigado,

## Data frame 1
pares<-c("P12A vs P12B","P12A vs P12C","P12A vs P12D","P12A vs
P12E","P16A vs P12F",
"P18A vs P12G","P20A vs P12H","P21A vs P12I","P22A vs P13A","P30A vs
P13B","P33A vs P142",
"P34A vs p142","P35A vs P148","P35A vs p148")
p<-c(1,1,4.00E-04,1.00E-04,0.0272,1,0.0012,1,2.00E-04,0.0281,2.00E-04,1,4.00E-04,1)
DF1<-data.frame(pares,p)
head(DF1)

#Data frame 2
#Fator
trat <- gl(3, 15, labels = paste("P", 12:14, "A",sep=""))
# Variaveis resposta
set.seed(124)
sp  <- cbind(c(rnorm(10,  5, 0.25), rnorm(35, 5, 0.25)), rnorm(45, 2.5,
0.25),
              c(rnorm(10, 4.5, 0.25), rnorm(35, 5, 0.25)), rnorm(45, 5,
0.25))
colnames(sp) <- c("sp1", "sp2", "sp3", "sp4")
DF2<-data.frame(trat,sp)

## Classificando data frame 2 em função de p de data frame 1

# Tentativa de função
         if (DF1$p>=0.05) {
         DF2$groups = DF1$pares
} else {
         DF2$groups = DF1$trat
}

head(DF2)
#

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================





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