使用变量引用R Dataframe中的列

时间:2015-03-27 23:37:07

标签: r

首先,我在R中创建一个简单的数据框:

Test <- as.data.frame(matrix(ncol=20,nrow=60))

接下来我填写几列:

Test[,1] <- 1
Test[,2] <- 2

接下来,我测试以确保我可以正确引用这些值:

Test[1,2]
[1] 2

这可以按预期工作。然后,我创建了几个变量,为具有非整数序列的for循环做准备:

j <- 1.2
h <- ((j-1)*10)
h
[1] 2

然后我使用“h”从数据框中提取值:

Test[1,h]
[1] 1

这会产生意外结果。 (它应该是2)。

这是为什么? R中是否存在与使用变量引用列相关联的问题?

1 个答案:

答案 0 :(得分:1)

R认为这些是不同的数字。这是解释Why doesn’t R think these numbers are equal?

  

唯一可以用R的数字类型精确表示的数字   是分数为2的幂的整数和分数。其他   数字必须四舍五入到(通常)53二进制数字的精确度。   结果,两个浮点数不会可靠地相等   除非它们是由同一算法计算的,并非总是如此   即便如此。

     

函数 all.equal()使用.Machine $ double.eps ^ 0.5的数字容差来比较两个对象。如果你想要更大   准确度比这要高,你需要考虑错误传播   小心。

因此,请使用

 all.equal(1, h)