R seq函数参数太多?
我犯了一个我根本不理解的错误。我在生成一些序列时遇到了一个问题: 这将创建一个50个数字的序列R seq函数参数太多?,r,sequence,R,Sequence,我犯了一个我根本不理解的错误。我在生成一些序列时遇到了一个问题: 这将创建一个50个数字的序列 seq.int(from=1,to=1000,by=5,length.out=50) 但如果我在控制台中输入此项,则会收到错误消息: seq.int中的错误(从=1,到=1000,由=5,长度.out=50): 争论太多 如果我看一下帮助(?seq),在用法部分有一行代码,看起来好像我正确调用了函数,它允许这么多参数: seq.int(from、to、by、length.out、with.with.
seq.int(from=1,to=1000,by=5,length.out=50)
但如果我在控制台中输入此项,则会收到错误消息:
seq.int中的错误(从=1,到=1000,由=5,长度.out=50):争论太多 如果我看一下帮助(
?seq
),在用法部分有一行代码,看起来好像我正确调用了函数,它允许这么多参数:
seq.int(from、to、by、length.out、with.with.)
那到底是怎么回事?我是缺少一些基本的东西,还是文件过时了
注意
我在代码示例中为函数提供的参数只是为了示例。我没有试图解决某个特定的问题,只是好奇为什么会出现错误。不清楚这行代码的输出结果是什么,而您之所以会出现错误,是因为
R
不想为您解决矛盾
下面是一些有效的输出,以及用于实现每个输出的代码行。在这种情况下,您需要根据自己的想法决定使用哪种方法:
覆盖length.out
通过
覆盖到
从
先验地,R
无法判断您喜欢上面哪一项,也不应该。作为程序员,您需要决定哪些输入优先
你是对的,这应该被记录下来;现在,请看一下最初由@nongkrong链接的。不清楚这行代码的输出是什么,您会得到一个错误,因为R
不想为您解决矛盾
下面是一些有效的输出,以及用于实现每个输出的代码行。在这种情况下,您需要根据自己的想法决定使用哪种方法:
覆盖length.out
通过
覆盖到
从
先验地,R
无法判断您喜欢上面哪一项,也不应该。作为程序员,您需要决定哪些输入优先
你是对的,这应该被记录下来;现在,请看一看最初由@nongkrong链接的。不,我所缺少的R语言的任何基本内容都不是问题的根源。问题在于,至少在撰写本文时,这些文件是误导性的和/或不正确的。不,我所缺少的R语言中没有任何基本的东西是问题的根源。问题在于,至少在撰写本文时,这些文档是误导性的和/或不正确的。这是完全有道理的,因为要么你通过同时指定这两个文档而显得多余,要么你给出了相互冲突的信息——即每一个文档都暗示着另一个文档。@MichaelChirico我认为这没有完全意义。我可以在脑海中想象一个场景,当你事先不知道from
和to
参数并在某个函数中传递它(或者函数从用户那里接收它们),而你总是希望序列按5
排序,并在50个结果后停止。在这种情况下,当达到246。我认为这很有道理,更不用说它没有真正的记录。当然,你可以按照下面的“答案”来做,但是效率很低,因为你首先要计算整个向量。@MichaelChirico我同意David的观点,它没有完美的意义,也不是多余的。我可能知道从,到和,但不是长度的例子。是的,我可以自己计算,但这不是违背了拥有这样一个函数的目的吗?明白了,错过了,你在1000点之前停了下来。还有一个问题——seq.int
应该如何知道你的意思是“从开始到,通过通过,在长度时停止。out
元素被生成”`而不是任何数量的其他解释——例如,“从开始在结束,减少直到长度。out
元素被生成”?这很有趣,因为有很多方法可以制作序列。您可以在第707行查看相关的源代码,您的错误是最后一条else
语句。这很有意义,因为要么您通过同时指定这两条语句而显得多余,要么您提供了相互冲突的信息——即,每一条都暗示着另一条。@MichaelChirico我认为这没有什么意义。我可以在脑海中想象一个场景,当你事先不知道from
和to
参数并在某个函数中传递它(或者函数从用户那里接收它们),而你总是希望序列按5
排序,并在50个结果后停止。在这种情况下,当达到246。我认为这很有道理,更不用说它没有真正的记录。当然,你可以按照下面的“答案”来做,但是效率很低,因为你首先要计算整个向量。@MichaelChirico我同意David的观点,它没有完美的意义,也不是多余的。我可能知道从,到和,但不是长度的例子。是的,我可以自己计算,但这不是违背了拥有这样一个函数的目的吗?明白了,错过了,你在1000点之前停了下来。还有一个问题——seq.int
应该如何知道你的意思是“从开始到,通过通过,在长度时停止。out
元素被生成”`而不是任何数量的其他解释——例如,“从开始在结束,减少直到长度。out
元素被生成”?这很有趣,因为有很多方法可以制作序列。您可以查看第行的相关来源
[1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86
...
[199] 991 996
#via:
seq.int(from=1,to=1000,by=5)
[1] 1.00000 21.38776 41.77551 62.16327 82.55102 102.93878 123.32653
[8] 143.71429 164.10204 184.48980 204.87755 225.26531 245.65306 266.04082
[15] 286.42857 306.81633 327.20408 347.59184 367.97959 388.36735 408.75510
[22] 429.14286 449.53061 469.91837 490.30612 510.69388 531.08163 551.46939
[29] 571.85714 592.24490 612.63265 633.02041 653.40816 673.79592 694.18367
[36] 714.57143 734.95918 755.34694 775.73469 796.12245 816.51020 836.89796
[43] 857.28571 877.67347 898.06122 918.44898 938.83673 959.22449 979.61224
[50] 1000.00000
#via:
seq.int(from=1,to=1000,length.out=50)
[1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101
[22] 106 111 116 121 126 131 136 141 146 151 156 161 166 171 176 181 186 191 196 201 206
[43] 211 216 221 226 231 236 241 246
#via:
seq.int(from=1,by=5,length.out=50)
[1] 755 760 765 770 775 780 785 790 795 800 805 810 815 820 825 830 835 840
[19] 845 850 855 860 865 870 875 880 885 890 895 900 905 910 915 920 925 930
[37] 935 940 945 950 955 960 965 970 975 980 985 990 995 1000
#via:
seq.int(to=1000,by=5,length.out=50)