Classificação de um data frame em função de outro

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@yahoo.com.br alexandre.santos@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 ======================================================================

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@yahoo.com.br alexandre.santos@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 ======================================================================
participantes (1)
-
ASANTOS