gpt4 book ai didi

r - 如何编写在数值中包含前导零的 substr 版本(在 R 中)?

转载 作者:行者123 更新时间:2023-12-02 00:52:43 24 4
gpt4 key购买 nike

在准备将规范化 double 转换为十进制数的函数时,我需要如下内容:

substr(01001011, 2, 5) # what is in fact:"0010" (because leading 0 is ignored)
substr(01001011, 2, 5) # what I want:"1001"
substr("01001011", 2, 5) # "1001"; gives what I want BUT the following:

substr("01001011", 2, 5) 中,(对我而言)不可能将其转换为函数,因为 input=01001011 和双引号连接非常非常有问题。每次用户必须手动输入参数值时,不是在函数调用中,而是在 substr(...) 部分所在的函数体中。

由于 01001011 被保留为数字而导致的问题,因此所有前导 0 都被忽略。

01001011 # [1] 1001011
class(01001011) # "numeric"

substrCorrectly <- function(x) {
substr("x", 2, 5) }

例如,对于号码“01001011”;

substrCorrectly <- function(x) {
substr("01001011", 2, 5) }
substrCorrectly(01001011) # "1001"

这个函数绝对是丑陋的,并且违背了函数的概念:每次用户必须在应用之前改变函数体!

有什么想法吗?

更多例子:

substr(000101001011, 1, 4) # "1010"; but what I want is 0001 here. 
substr(10001, 1, 2) # "10" and what I want (10) coincides since 1 is leading.

最佳答案

您可以使用 formatC 允许保留第一个 0

substrCorrectly <- function(x) { 
x <- formatC(x, flag="0", width=8, format="d")
substr(x, 2, 5)
}
substrCorrectly(01001011) # "1001"

关于r - 如何编写在数值中包含前导零的 substr 版本(在 R 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56337119/

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