Ludmila, boa tarde!

Usando a amostra dos dados que você postou, não consegui reproduzir o erro. Rodou normalmente. De qualquer modo, vale a dica do colega Rubem para usar split(). Uma vantagem é que as listas saem rotuladas (ver saída de uc_list vs. uc_list2 gerado pelo código que segue).

### <code r>
sp_names <- c("Abrothrix longipilis", "Aegialomys xanthaeolus", 
              "Acerodon celebensis", "Acerodon mackloti",
              "Acomys airensis", "Acomys nesiotes")

data <- read.table(text='
ID;WDPAID;BINOMIAL;wdpaid
1;16861;Abrothrix longipilis;NA
2;129914;Aegialomys xanthaeolus;NA
3;1275;Acerodon celebensis;NA
4;1491;Acerodon celebensis;NA
5;1918;Acerodon celebensis;NA
6;1919;Acerodon celebensis;NA', header=T, row.names='ID', sep=';', as.is=T)

uc_list  <- lapply(sp_names, function(x) data$WDPAID[data$BINOMIAL==x])
uc_list2 <- split(data$WDPAID, data$BINOMIAL)[sp_names]
### </code>


Éder Comunello <comunello.eder@gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]