Ho un vettore di caratteri e voglio assicurarmi che tutti gli elementi del vettore abbiano la stessa lunghezza. Quindi mi riempio gli elementi corti con spazi, in questo modo:Sprintf in R non conta le dieresi
vec <- c("fjdlksa01dada","rau","sjklf")
x <- sprintf("%-15s", vec)
nchar(x)
# returns
[1] 15 15 15
come risposte alla mia previous question suggerito. Questo va bene, ma sembra avere problemi con le dieresi. Ad esempio se il mio vettore si presenta così:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
y <- sprintf("%-15s", vec)
nchar(y)
# returns
[1] 15 14 15
Sto eseguendo R su Mac OS X (10.6). Come posso risolvere questo?
MODIFICA: Nota, non sto cercando di correggere l'output di nchar perché è corretto. Il problema è che sprintf perde l'umlaut.
MODIFICA: aggiornamento R, modificato in locale DWins: nessuna modifica. Ma:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
Encoding(vec2)
# returns
[1] "unknown" "UTF-8" "unknown"
strano.
Impossibile riprodurre su un Mac che esegue 10.5.8/Rv2.14.1 con> Sys.getlocale() = "en_US.UTF-8/it_IT.UTF-8/it_IT.UTF-8/C/it_IT.UTF- 8/en_US.UTF-8" . –
È molto interessante. Avete, per caso, un manuale/collegamento come installare altre impostazioni locali? Inoltre, dovrei aggiornare R, ancora in esecuzione 2.13.2 –
L'aggiornamento a 2.14.1 non ha aiutato :( –