从R中的Dataframe中提取元素的值

时间:2014-08-20 16:28:49

标签: r

我是R的新手并尝试从数据框中提取特定元素并将其与整数进行比较。

我在文本文件中保存了一个表。

data-file image

我使用以下内容来阅读表格。

mydata = read.table("file.txt");

在我的情况下,我想比较一个元素,比如说USERPOR的第一个元素(1.0)和一个整数1.0(所以比较应该返回true)。

我写的代码是

mydata[[2,7]]

[1] 1.000
Levels: 1.000 10.0000 2.000 3.000 4.00 5.00 6.000 7.000 8.000 9.000 USERPROR

然而,当我比较它们时,我得到了'假'。谁能告诉为什么会这样呢?

> mydata[[2,7]]==1.0

[1] FALSE

1 个答案:

答案 0 :(得分:2)

Hmmmm。首先,通常使用单个括号访问data.frame的元素 - 如mydata[2,7]。双括号将访问一列,例如mydata[[2]]将返回第二列。因此,mydata[[7]][2]mydata[2,7]相同。

其次,由于您的输出包含Levels:列表,因此该变量似乎存储为级别为"1.000""10.0000",... "USERPROR"的因子(奇怪的是,我猜测数据输入不正确)。因此,我相信在您的示例中,mydata[2,7] == "1.000"会返回TRUE

一般情况下,如果您想将数值与整数进行比较,请不要使用1.0之类的比较值,因为.0部分强制将其存储为浮点数 - 点,不是整数。如果数据存储为浮点数,则可能有足够的舍入值,计算为1.0的数字不等于整数1。测试它的可靠方法是使用round(mydata[2,7]) == 1