R:当使用rep(…,…)复制1020个字符变量时,结果只包含1019个复制?
在R环境中编程时,我使用了rep(“[35,40)”,1020)。这应该会给我一个包含1020次“[35,40]”的列表。但是,结果只包含这些元素中的1019个 编程首先是在一个复制的两个向量中完成的,但即使我将其拆分,它也不起作用 我尝试使用不同版本的R(R2.11.1、R2.9.0、R2.10.0、R2.7.2),但没有一个版本能正常工作 有没有人知道有没有一个版本的R没有这个bug?或者我如何解决这个问题 所以这个代码是:R:当使用rep(…,…)复制1020个字符变量时,结果只包含1019个复制?,r,replicate,R,Replicate,在R环境中编程时,我使用了rep(“[35,40)”,1020)。这应该会给我一个包含1020次“[35,40]”的列表。但是,结果只包含这些元素中的1019个 编程首先是在一个复制的两个向量中完成的,但即使我将其拆分,它也不起作用 我尝试使用不同版本的R(R2.11.1、R2.9.0、R2.10.0、R2.7.2),但没有一个版本能正常工作 有没有人知道有没有一个版本的R没有这个bug?或者我如何解决这个问题 所以这个代码是: > agecats [1] "(-0.001,5]" "(
> agecats
[1] "(-0.001,5]" "(5,10]" "(10,15]" "(15,20]" "(20,25]"
[6] "(25,30]" "(30,35]" "(35,40]" "(40,45]" "(45,50]"
[11] "(50,55]" "(55,60]" "(60,65]" "(65,70]" "(70,75]"
[16] "(75,80]"
> weightage<-c(0.9,0.9,2.7,3.1,8.9,10.05,10.05,10.2,10.2,9.3,9.3,8.7,7.9,3.15,3.15,1.5)
> weightage
[1] 0.90 0.90 2.70 3.10 8.90 10.05 10.05 10.20 10.20 9.30 9.30 8.70
[13] 7.90 3.15 3.15 1.50
> weightage100<-weightage*100
> weightage100
[1] 90 90 270 310 890 1005 1005 1020 1020 930 930 870 790 315 315
[16] 150
> tosamplefrom<-rep(agecats,weightage100)
> table(tosamplefrom)
tosamplefrom
(-0.001,5] (10,15] (15,20] (20,25] (25,30] (30,35] (35,40]
90 270 310 890 1005 1005 1019
(40,45] (45,50] (5,10] (50,55] (55,60] (60,65] (65,70]
1019 930 90 930 869 790 315
(70,75] (75,80]
315 150
老年猫
[1] "(-0.001,5]" "(5,10]" "(10,15]" "(15,20]" "(20,25]"
[6] "(25,30]" "(30,35]" "(35,40]" "(40,45]" "(45,50]"
[11] "(50,55]" "(55,60]" "(60,65]" "(65,70]" "(70,75]"
[16] "(75,80]"
>重量重量
[1] 0.90 0.90 2.70 3.10 8.90 10.05 10.05 10.20 10.20 9.30 9.30 8.70
[13] 7.90 3.15 3.15 1.50
>重量100重量100
[1] 90 90 270 310 890 1005 1005 1020 1020 930 930 870 790 315 315
[16] 150
>tosamplefrom表格(tosamplefrom)
tosamplefrom
(-0.001,5] (10,15] (15,20] (20,25] (25,30] (30,35] (35,40]
90 270 310 890 1005 1005 1019
(40,45] (45,50] (5,10] (50,55] (55,60] (60,65] (65,70]
1019 930 90 930 869 790 315
(70,75] (75,80]
315 150
这里我应该有8次和9次1020次,它只给出1019次
金姆
这是您的问题。10.2无法精确表示,一切都将陷入地狱,因为您将浮点数相乘,并假设它是整数。看来R必须是数字的底数,或者只是使用as.integer进行转换:
floor(10.2*100)
1019
as.integer(10.2*100)
1019
无论浮点值是略高于还是略低于,舍入都有效。以下更改确实解决了此问题
weightage100 <- round (weightage*100)
weightage100我无法复制它。如果执行length(rep([35,40)”,1020))会发生什么
?好吧,它的工作原理与你在这里所说的一样。但问题是我编码了1020,我在变量名中加了1020,也加上了要复制的部分。如果我这样做,结果是1019。在这一点上,我不确定是否有比手工更好的方法。你能给我们看一些有错误的代码吗。我把我的代码添加到了e问题..那不可能是你的代码…再试一次…也可以试着像运行一样粘贴你的代码,然后按顶部的小按钮1和0
weightage100 <- round (weightage*100)