gpt4 book ai didi

r - 在 R 函数中不使用 return 修改对象

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

我试图在不使用 R 中的额外空间的情况下反转字符串。下面是相同的代码。我的问题是如何获得 ReverseString函数在不使用额外空间的情况下更改输入。我什至尝试使用 <<-没有任何运气。

ReverseString <- function(TestString){
TestString <- unlist(strsplit(TestString, ""))
Left <- 1
Right <- length(TestString)
while (Left < Right){
Temp <- TestString[Left]
TestString[Left] <- TestString[Right]
TestString[Right] <- Temp
Left <- Left + 1
Right <- Right - 1
}
return(paste(TestString, collapse = ""))

}
## Input
a = "StackOverFlow"
## OutPut
ReverseString(a)
"wolFrevOkcatS"
##
a
"StackOverFlow"

最佳答案

最好利用 R 中的矢量化(而不是 for 或 while 循环)。所以,在 base-R 中,没有任何包,它会是这样的:

ReverseString <- function(x) {
#splitstring splits every character, and rev reverses the order
out <- rev(strsplit(x, split = '')[[1]])
#paste to paste them together
paste(out, collapse = '')
}

a <- "StackOverFlow"
ReverseString(a)
#[1] "wolFrevOkcatS"

关于r - 在 R 函数中不使用 return 修改对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56428360/

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