我导入了一个包含大数字的数据集,这些数据自动转换为指数表示法。因为我必须看到完整的数字,所以我使用了选项(scipen = 999)。我发现导入的数字与数据集中的原始数字不相等。例如,5765949338897345178已更改为5765949338897345536.
这些数字不一样怎么样?奇怪的是,当我使用:(dim_alias1 $ id == 5765949338897345536)和(dim_alias1 $ id = 5765949338897345178)时,它返回相同的rownumber。这怎么可能?
答案 0 :(得分:2)
当您将变量用作id号时,它不需要是数字。所以在阅读时要set the column class。
示例:
dat <- data.frame(id=12345, x=1)
write.table(dat, tmp <- tempfile())
dat2 <- read.table(tmp, colClasses = c(id="character"))
str(dat2)
#'data.frame': 1 obs. of 2 variables:
# $ id: chr "12345"
# $ x : int 1