
Pessoal, tenho uma lista de nomes num banco, que pertencem a outro banco. Exemplo. lista=c("a","b","c","d","e","f","g") nome=c("a","b","a","c","d","h","a","g","e","f","g") inf=c("1","2","3","9","6","5","8","12","4","6","11") banco=cbind(nome,inf) banco=as.data.frame(banco) Quando faço, por exemplo which(banco=="a") Retorna 1 3 7 Preciso criar uma lista com os ids desses nomes no banco. Assim, a lista para o meu exemplo ficaria: lista2= 1 3 7 2 4 5 9 10 8 11 Na verdade, pensei num looping, mas não sei fazer. A minha ideia seria lista2=which(banco=="n") sendo n=cada um dos nomes da 'lista' Teria que fazer isto com todos os n da 'lista' na ordem e ir guardando na lista2 Isso é possível? Alguém poderia ajudar? Obrigada Fátima

Olá, Seria isso? inf[nome%in%lista] Abs Em 11 de janeiro de 2013 19:10, Fátima Lima Paula < fatima.lima.paula@gmail.com> escreveu:
Pessoal, tenho uma lista de nomes num banco, que pertencem a outro banco. Exemplo. lista=c("a","b","c","d","e","f","g") nome=c("a","b","a","c","d","h","a","g","e","f","g") inf=c("1","2","3","9","6","5","8","12","4","6","11") banco=cbind(nome,inf) banco=as.data.frame(banco) Quando faço, por exemplo which(banco=="a") Retorna 1 3 7 Preciso criar uma lista com os ids desses nomes no banco. Assim, a lista para o meu exemplo ficaria: lista2= 1 3 7 2 4 5 9 10 8 11 Na verdade, pensei num looping, mas não sei fazer. A minha ideia seria lista2=which(banco=="n") sendo n=cada um dos nomes da 'lista' Teria que fazer isto com todos os n da 'lista' na ordem e ir guardando na lista2 Isso é possível? Alguém poderia ajudar? Obrigada Fátima
_______________________________________________ R-br mailing list R-br@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.
-- Luciano F. Sgarbi Mestrando em Ecologia e Evolução - UFG Laboratório de Ecologia de Insetos Cel. (62)8174-2262 Lab. (62)3521-1732

Esse resultado pontual você pode obter com
order(nome) [1] 1 3 7 2 4 5 9 10 8 11 6
Se não é isso, a função match() é muito indicada para esse tipo de coisa. À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Oi Walmes, acho que você não percebeu que nem todos os nomes de 'banco' pertencem a 'lista'. O order não funciona neste caso. E o match (eu acho) não vai retornar a posição dos nomes da lista no banco. Parece mais complicado na minha cabeça. De qualquer forma, obrigada. Em 11 de janeiro de 2013 20:02, Walmes Zeviani <walmeszeviani@gmail.com>escreveu:
Esse resultado pontual você pode obter com
order(nome) [1] 1 3 7 2 4 5 9 10 8 11 6
Se não é isso, a função match() é muito indicada para esse tipo de coisa.
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@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.

Pessoal, eu consegui fazer um looping que retornou o que eu queria, mas não sei porque o '8' ficou deslocado. Vejam: lista=c("a","b","c","d","e","f","g") nome=c("a","b","a","c","d","h","a","g","e","f","g") inf=c("1","2","3","9","6","5","8","12","4","6","11") banco=cbind(nome,inf) banco=as.data.frame(banco) n=lista[i] for(i in lista){ print(which(banco==i)) } [1] 1 3 7 [1] 2 [1] 4 [1] 5 [1] 9 [1] 10 [1] 8 11 Como faço para guardar esse resultado com um nome? Em 11 de janeiro de 2013 20:11, Fátima Lima Paula < fatima.lima.paula@gmail.com> escreveu:
Oi Walmes, acho que você não percebeu que nem todos os nomes de 'banco' pertencem a 'lista'. O order não funciona neste caso. E o match (eu acho) não vai retornar a posição dos nomes da lista no banco. Parece mais complicado na minha cabeça. De qualquer forma, obrigada.
Em 11 de janeiro de 2013 20:02, Walmes Zeviani <walmeszeviani@gmail.com>escreveu:
Esse resultado pontual você pode obter com
order(nome) [1] 1 3 7 2 4 5 9 10 8 11 6
Se não é isso, a função match() é muito indicada para esse tipo de coisa.
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@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.
participantes (3)
-
Fátima Lima Paula
-
Luciano F. Sgarbi
-
Walmes Zeviani