我有矢量字符,我想確保矢量的所有元素都具有相同的長度。因此,我用空格填充短元素,如下所示:R中的Sprintf不計算變音符號
vec <- c("fjdlksa01dada","rau","sjklf")
x <- sprintf("%-15s", vec)
nchar(x)
# returns
[1] 15 15 15
像我的previous question建議的答案一樣。這很好,但它似乎有困難與元音變音。例如,如果我的向量看起來像這樣:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
y <- sprintf("%-15s", vec)
nchar(y)
# returns
[1] 15 14 15
我在Mac OS X(10.6)上運行R.我怎樣才能解決這個問題?
編輯: 請注意,我不打算修復nchar的輸出,因爲它是正確的。問題是sprintf失去了變音。
編輯:更新R,更改爲德文語言環境 - 根本沒有變化。但是:
vec2 <- c("fjdlksa01dada","rauü","sjklf")
Encoding(vec2)
# returns
[1] "unknown" "UTF-8" "unknown"
奇怪。
無法在運行10.5.8/Rv2.14.1的Mac上使用> Sys.getlocale()=「en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF- 8 /的en_US.UTF-8" 。 – 2012-02-15 13:11:24
這非常有趣。你有 - 偶然 - 手冊/鏈接如何安裝其他語言環境?另外,我應該更新R,仍然運行2.13.2 – 2012-02-15 13:49:57
更新到2.14.1沒有幫助:( – 2012-02-15 14:03:38