1
我有一個名爲特徵向量是這樣的:打印名爲向量不填充
x <- c(a="1.000", b="10000.000", c="1.000")
我要打印不帶引號,留下2值之間的差距。
print(x, quote=FALSE, print.gap=2)
給我:
a b c
1.000 10000.000 1.000
如可以看到的,所有的值被填充到最寬值的寬度。我想打印出來,使它看起來像這樣:
a b c
1.000 10000.000 1.000
的名稱也可能會更長。例如:
x <- c(aaaaaa="1.000", b="10000.000", ccccccc="1.000")
這應該打印爲:
aaaaaa b ccccccc
1.000 10000.000 1.000
我看不出如何能與現有的功能來實現。我寫了這個醜陋的黑客:
fun <- function(x) {
len.n <- nchar(names(x))
len.x <- nchar(x)
max.len <- pmax(len.n, len.x)
for (i in 1:length(x)) {
cat(rep(" ", (max.len - len.n)[i]), collapse="", sep="")
if (i > 1)
cat(" ")
cat(names(x)[i])
}
cat("\n")
for (i in 1:length(x)) {
cat(rep(" ", (max.len - len.x)[i]), collapse="", sep="")
if (i > 1)
cat(" ")
cat(x[i])
}
cat("\n")
}
x <- c(a="1.000", b="10000.000", c="1.000")
fun(x)
x <- c(aaaaaa="1.000", b="10000.000", ccccccc="1.000")
fun(x)
任何建議爲更優雅的解決方案?