gpt4 book ai didi

r - R中的加权数字总和

转载 作者:行者123 更新时间:2023-12-02 08:07:29 24 4
gpt4 key购买 nike

我正在尝试找出最有效的方法来计算数字字符串的加权数字总和(其中权重等于数字字符串中数字的位置)。

示例:对于数字 1059,数字的加权和计算为 1 * 1 + 0 * 2 + 5 * 3 + 9 * 4 = 52

我想允许输入是任意长度的,但是如果在字符串长度有限制时有更有效的方法(例如,知道数字不超过 10 位允许更有效的程序) 我也对此持开放态度。此外,如果首选输入是 numeric 类型而不是 character 类型,那也是可以接受的。

我现在拥有的是一个老式的 for 循环:

wsod <- function(str) {
output <- 0
for (pos in 1:nchar(str)) {
digit <- as.numeric(substr(str, pos , pos))
output <- output + pos * digit
}
output
}

A few solutions已经针对 Python 提出了建议(使用数字输入),但我不认为它们直接适用于 R。

最佳答案

> number <-  1059
> x <- strsplit(as.character(number), "")[[1]]
> y <- seq_len(nchar(number))
> as.numeric(as.numeric(x) %*% y)
[1] 52

关于r - R中的加权数字总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50180221/

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