gpt4 book ai didi

r - 如何在不使用循环的情况下动态舍入/格式化数字向量?

转载 作者:行者123 更新时间:2023-12-02 01:57:15 24 4
gpt4 key购买 nike

我有两个数字向量:v1v2 第一个是一组实数。第二个是我想要舍入或格式化 v1 的一组小数位。

这是向量:

v1 <- c(7.449835, 6.649058, 9.072736, 5.643506, 8.979166, 5.544238, 1.746717, 4.151327, 8.408533, 1.176206)
v2 <- c(1, 2, 0, 3, 4, 6, 1, 2, 2, 3)

我想要的结果是这样的:

[1] 7.4 6.64 9 5.643 8.9791 5.544238 1.7 4.15 8.40 1.176

...其中第一个向量根据第二个向量进行舍入/格式化。我不在乎结果是字符向量还是数字向量。但最后,数字很多,我不想使用循环:

请注意,这不起作用:

format(v1, digits = v2)
[1] "7" "7" "9" "6" "9" "6" "2" "4" "8" "1"

这不起作用:

round(v1, digits = v2)
[1] 7.400000 6.650000 9.000000 5.644000 8.979200 5.544238 1.700000 4.150000 8.410000 1.176000

那么,如何在 R 中不使用循环的情况下动态舍入或格式化向量?

最佳答案

?sprintf fmt 参数可以采用“格式字符串的字符向量”。

因此,您可以通过使用 sprintf 格式语法粘贴格式数字向量来将格式拼凑在一起,例如paste0("%#.", v2, "f").

大家一起

sprintf(v1, fmt=paste0("%#.", v2, "f"))

关于r - 如何在不使用循环的情况下动态舍入/格式化数字向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69502411/

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