在处理一些数据时,我遇到了子设置data.table的问题
我的数据表示例
library(data.table)
datatab <- structure(list(a = c(183591969L, 183591969L, 183591984L, 183591727L,
183591733L), b = c(183591984L, 183591985L, 183591985L, 183591729L,
183591737L)), .Names = c("a", "b"), class = c("data.table", "data.frame"
), row.names = c(NA, -5L))
我只是尝试用像这样的变量来拆分整个事情
a <- 2
datatab[1:a,]
但收到错误
警告消息:在1:a中:数值表达式包含5个元素:仅 第一次使用
同时
df <- as.data.frame(datatab)
df[1:a,]
和
datatab[1:2,]
按预期工作。
可能是我没有得到的显而易见的东西。我想这与data.table库处理数据的方式有关,但是如果有人可以澄清,我将不胜感激。由于我的真实数据要大得多,因此我想避免使用as.data.frame()
答案 0 :(得分:4)
您使用a
作为参数,而该参数恰好是data.table
的一列,请为该参数使用其他名称:
x <- 2
datatab[1:x,]
# a b
#1: 183591969 183591984
#2: 183591969 183591985