R创建一个数据表
示例
Adata.table是data.frame从R开始的类的增强版本。同样,它的class()属性是向量"data.table""data.frame",在a上起作用的函数也data.frame将与data.table一起工作。有很多方法可以创建,加载或强制执行data.table。
建立
不要忘记安装和激活data.table软件包
library(data.table)
有一个同名的构造函数:
DT <- data.table( x = letters[1:5], y = 1:5, z = (1:5) > 3 ) # x y z # 1: a 1 FALSE # 2: b 2 FALSE # 3: c 3 FALSE # 4: d 4 TRUE # 5: e 5 TRUE
与不同data.frame,data.table不会将字符串强制转换为因素:
sapply(DT, class) # x y z # "character" "integer" "logical"
读入
我们可以从一个文本文件中读取:
dt <- fread("my_file.csv")
不像read.csv,fread将字符串作为字符串而不是因素来读取。
修改数据框
为了提高效率,data.table提供了一种更改data.frame或列表以进行data.table就地的方法(无需进行复制或更改其存储位置):
# example data.frame DF <- data.frame(x = letters[1:5], y = 1:5, z = (1:5) > 3) # modification setDT(DF)
请注意<-,由于对象DF已就地修改,因此我们不分配结果。的类属性data.frame将保留:
sapply(DF, class) # x y z # "factor" "integer" "logical"
强制对象到data.table
如果你有一个list,data.frame或者data.table,你应该使用setDT功能转换成一个data.table,因为它通过参考确实不是使副本(转换as.data.table一样)。如果您要处理大型数据集,这一点很重要。
如果您还有另一个R对象(例如矩阵),则必须使用as.data.table将其强制为data.table。
mat <- matrix(0, ncol = 10, nrow = 10) DT <- as.data.table(mat) # or DT <- data.table(mat)