gpt4 book ai didi

R - 通过自动迭代避免循环

转载 作者:行者123 更新时间:2023-12-04 17:27:34 25 4
gpt4 key购买 nike

这是一个人为的例子,我希望用它来更好地理解 R。假设我想对一个名为“test”的字符向量进行子集化。我想返回从第三个字符到最后一个字符的每个元素值。这不起作用:

test = c( "Jane" , "Jerry" , "Joan" )
substr( test , 3 , length( test ) )
expecting: "ne" , "rry" , "an"

有没有办法在没有 for 循环的情况下做到这一点?

最佳答案

使用 nchar() .它是矢量化的:

> test = c( "Jane" , "Jerry" , "Joan" )
> substr( test , 3 , nchar( test ) )
[1] "ne" "rry" "an"

鉴于 nchar 将返回一个长度向量,并且 substr 同样被向量化,因此期望使用向量参数,一个潜在的难题是为什么它甚至接受 3 的标量参数.这里的答案是 start 和 stop 参数的标量被回收以匹配输入字符向量的长度。因此,您甚至可以对 start 参数使用 1:2 并交替获得完整和几乎完整的字符串:
>      substr( test , 1:2 , nchar( test ) )
[1] "Jane" "erry" "Joan"

关于R - 通过自动迭代避免循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825995/

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