rilevato errore segfault in R

Ricevo un errore caught segfault ogni volta che cerco di eseguire qualsiasi funzione di ggplot2 pacchetto ggplot2 (1.0.0). Ho provato questo con qplot , geom_dotplot , geom_histogram , ecc. I dati del pacchetto (es. diamonds o economics ) funzionano bene.

Sto operando su Mac OS 10.9.4 (l’ultima versione) e su R 3.1.1 (anche l’ultima versione). Ottengo lo stesso errore con la GUI R standard, RStudio e quando si usa R dalla riga di comando. Il comando richiama il dispositivo grafico predefinito (Quartz per R GUI e riga di comando), ma anche l’errore del terminale.

 library(ggplot2) qplot(1:10) 

mi dà l’errore:

 *** caught segfault *** address 0x18, cause 'memory not mapped' Traceback: 1: .Call("plyr_split_indices", PACKAGE = "plyr", group, n) 2: split_indices(scale_id, n) 3: scale_apply(layer_data, x_vars, scale_train, SCALE_X, panel$x_scales) 4: train_position(panel, data, scale_x(), scale_y()) 5: ggplot_build(x) 6: print.ggplot(list(data = list(), layers = list(), scales = , mapping = list(x = 1:3), theme = list(), coordinates = list(limits = list(x = NULL, y = NULL)), facet = list(shrink = TRUE), plot_env = , labels = list(x = "1:3", y = "count"))) 7: print(list(data = list(), layers = list(), scales = , mapping = list(x = 1:3), theme = list(), coordinates = list( limits = list(x = NULL, y = NULL)), facet = list(shrink = TRUE), plot_env = , labels = list(x = "1:3", y = "count"))) Possible actions: 1: abort (with core dump, if enabled) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace 

Ecco le mie informazioni sulla sessione:

 R version 3.1.1 (2014-07-10) Platform: x86_64-apple-darwin13.1.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] graphics grDevices utils datasets stats methods base other attached packages: [1] ggplot2_1.0.0 marelac_2.1.3 seacarb_3.0 shape_1.4.1 beepr_1.1 birk_1.1 loaded via a namespace (and not attached): [1] audio_0.1-5 colorspace_1.2-4 digest_0.6.4 grid_3.1.1 gtable_0.1.2 [6] MASS_7.3-34 munsell_0.4.2 plyr_1.8.1 proto_0.3-10 Rcpp_0.11.2 [11] reshape2_1.4 scales_0.2.4 stringr_0.6.2 tools_3.1.1 

Ho scoperto da altri che si tratta di un problema di memoria di qualche tipo, ma questo errore si verifica anche quando ho più di 2 GB di RAM libera. So che questo è un pacchetto ampiamente utilizzato, quindi ovviamente questo non succede a tutti, ma perché sta succedendo per me? Qualcuno sa cosa posso fare per risolvere questo problema?

Nel caso in cui qualcun altro abbia questo problema o simili in futuro, ho inviato un bug report al manutentore del pacchetto e lui ha raccomandato di disinstallare tutti i pacchetti installati e ricominciare da capo. Ho preso il suo consiglio e ha funzionato!

Ho seguito i consigli di questo post: http://r.789695.n4.nabble.com/Reset-Rs-library-to-base-packages-only-remove-all-installed-contributed-packages-td3596151.html

 ip <- installed.packages() pkgs.to.remove <- ip[!(ip[,"Priority"] %in% c("base", "recommended")), 1] sapply(pkgs.to.remove, remove.packages) 

Questa non è una risposta a questa domanda, ma potrebbe essere utile per qualcuno. (Ispirato dall’utente1310503. Grazie!)

Sto lavorando a un file df data.frame con tre colonne: col1, col2, col3. inizialmente,

 df =data.frame(col1=character(),col2=numeric(),col3=numeric(),stringsAsFactors = F) 

Nel processo, rbind è usato per molte volte, come:

 aList<-list(col1="aaa", col2 = "123", col3 = "234") dfNew <- as.data.frame(aList) df <- rbind(df, dfNew) 

Finalmente, df è scritto su file tramite data.table :: fwrite

 data.table::fwrite(x = df, file = fileDF, append = FALSE, row.names = F, quote = F, showProgress = T) 

df ha 5973 righe e 3 colonne. Il "segfault catturato" si verifica sempre:

 address 0x1, cause 'memory not mapped'. 

La soluzione a questo problema è:

 aList<-list(col1=as.character("aaa"), col2 = as.numeric("123"), col3 = as.numeric("234")) dfNew <- as.data.frame(aList) dfNew$col1 <- as.characer(dfNew$col1) dfNew$col2 <- as.numeric(dfNew$col2) dfNew$col3 <- as.numeric(dfNew$col3) df <- rbind(df, dfNew) 

Quindi questo problema è risolto. La ragione ansible è che le classi di colonne sono diverse.

Questa non è una risposta a questa domanda, ma potrebbe essere utile per qualcuno. Ho avuto segfaults quando ho fatto il pdf per creare un dispositivo grafico PDF e poi ho usato la plot . Questo è successo con R 2.15.3, 3.2.4 e una o due altre versioni, eseguite su Scientific Linux versione 6.7. Ho provato molte cose diverse, ma l’unico modo per farlo funzionare era (a) usare png o tiff posto di pdf , o (b) salvare grandi file .RData e quindi usare un programma R completamente separato per creare la grafica.