R:当使用rep(…,…)复制1020个字符变量时,结果只包含1019个复制?

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]" "(

在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]" "(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)