【发布时间】:2011-11-07 19:40:52
【问题描述】:
我在 R 中有一个 data.frame,它是根据此处的示例 1-3 数据集构建的: http://riskfactor.cancer.gov/diet/usualintakes/dataset.html
我使用 Stat Transfer 将其从 SAS 转换为 ASCII,并保存为 csv。我已使用 read.csv 命令将数据导入 R:
t_0104nc <- read.csv("foo.csv",header=T)
数据在 data.frame 结构中。此文件中有一些与权重相关的列(RNDW 到 RNDW32)。虽然这些看起来是整数,但在 Excel 中查看数据时,单元格具有通用格式。 R 已将数据加倍。
我正在使用 RNDW1,我需要确认它是整数。但是,输入 typeof(RNDW1) 和 storage.mode(RNDW1) 都会将数据显示为 double。
对我来说,测试我在该列中只有整数值的最有效方法是什么?我不想强制数据,因为非整数的存在表明数据存在强制无法修复的基本问题。
另外,我想知道是否有某种方法可以导入数据,以便将其存储为 R 中最简单的数据类型 - 然后应该将这些值作为整数导入。有的数据是整数,有的数据是单数或双数,所以数据不都是同一类型。
根据以下建议进行更新。我只需要一个简单的布尔真/假测试,所以我使用了:
if(isTRUE(all.equal(x, xi <- as.integer(x)))) y="TRUE" else y="FALSE"
y
然后返回一个 true 或 false 值来指示测试的整体结果。感谢我收到的所有(快速!)帮助,我对代码和对它的理解感到满意。
【问题讨论】: