gpt4 book ai didi

r - 格式打印语句

转载 作者:行者123 更新时间:2023-12-01 10:59:20 25 4
gpt4 key购买 nike

我想格式化打印语句的输出,以便打印语句中的元素由一个小的均匀间隙隔开,间隙为 1、3 或 5 个空格。就是它可能吗?

在下面的例子中,我认为打印语句中的所有元素都被假定为只要打印语句中的第一个元素(此处只要 aa1aa2)。

print.gap 语句没有生成所需的格式。它只是添加了一个每个元素之间额外的固定数量的空格。

aa1 <- 'abcdefghijklmnopqrstuvwxyz'
aa2 <- 'abc'

bb <- 10
cc <- 222

print(c(aa1,bb,cc))

# [1] "abcdefghijklmnopqrstuvwxyz" "10" "222"

print(c(aa2,bb,cc))

# [1] "abc" "10" "222"

# desired output:

# [1] "abcdefghijklmnopqrstuvwxyz" "10" "222"
#
# or
#
# [1] "abcdefghijklmnopqrstuvwxyz" 10 222

感谢您的任何建议。也许我必须使用 cat 语句和 sprintf 而不是 print 语句。也许是这个的一些变化:How to print R variables in middle of String

最佳答案

这会让你到达那里:

x <- c(aa1,bb,cc)

options(useFancyQuotes = FALSE)
cat(paste(dQuote(x), collapse=" "), "\n")
# "abcdefghijklmnopqrstuvwxyz" "10" "222"

我说“中途”是因为上面的代码没有处理换行:如果你给它一个很长的字符串向量,它们都会被抓到一个很长的非换行...


编辑显示一种换行方法:

您可以通过组合使用 strwrap()(感谢@mnel)和 gsub() 来换行,:

xs <- c(x,x,x,x)

cat(gsub("\" \"", "\" \"",
strwrap(paste(dQuote(xs), collapse=" "), 70)), sep="\n")
# "abcdefghijklmnopqrstuvwxyz" "10" "222" "abcdefghijklmnopqrstuvwxyz"
# "10" "222" "abcdefghijklmnopqrstuvwxyz" "10" "222"
# "abcdefghijklmnopqrstuvwxyz" "10" "222"

(如果向量元素之间需要多个空格,则需要调用 gsub(),因为 strwrap() 会破坏输入中的空格。)

关于r - 格式打印语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com