作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个数字向量:v1
和 v2
第一个是一组实数。第二个是我想要舍入或格式化 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/
我是一名优秀的程序员,十分优秀!