Puoi copiare il dataframe in un file di testo csv o delimitato da tabulazioni, quindi caricarlo in PostgreSQL con il comando COPY FROM [1]? Ciò implementa un approccio di caricamento di massa che potrebbe funzionare più velocemente.
In alcuni casi, potrebbe essere possibile utilizzare un RScript per emettere i dati come flusso e inviarli direttamente a psql:
<RScript output tab delmited rows> | psql -c "COPY <tablename> (columnlist, ...) FROM STDIN WITH (FORMAT text)"
In alcuni casi di lunga durata, metto | pv | nel mezzo per monitorare i progressi (http://www.ivarch.com/programs/pv. shtml ).
[1] http://www.postgresql.org/docs/ current/interactive/sql-copy.html