I found a solution that works for me:
library(memisc)
mydata <- as.data.set(spss.portable.file("myspssdata.por"))
mydata <- as.data.frame(mydata)
When the data.set is converted to data.frame all NA values are correct.
I also tried to obtain a data.frame directly:
mydata <- as.data.frame(spss.portable.file("myspssdata.por"))
But in that way I obtain a data.frame with 0 observations. So it seems that is mandatory to go through the data.set first.
Thanks for your answers.