如何在R中将数据帧转换为data.table?
由于对data.table的操作有时比数据帧快,因此我们可能希望将数据帧转换为data.table对象。数据框和data.table之间的主要区别在于,数据框可在基础R中使用,但是要使用data.table,我们必须安装软件包data.table。我们可以使用data.table包中的help setDT函数来完成此操作。
示例
请看以下数据帧-
> set.seed(1)> x1<-rnorm(20,0.5)
> x2<-rnorm(20,0.8)
> x3<-rpois(20,2)
> x4<-rpois(20,5)
> x5<-runif(20,5,10)
> df<-data.frame(x1,x2,x3,x4,x5)
> df
x1 x2 x3 x4 x5
1 -0.1264538 1.7189774 2 6 9.959193
2 0.6836433 1.5821363 3 4 7.477968
3 -0.3356286 0.8745650 1 4 7.421748
4 2.0952808 -1.1893517 1 11 5.867212
5 0.8295078 1.4198257 3 6 8.774105
6 -0.3204684 0.7438713 1 3 7.269477
7 0.9874291 0.6442045 3 3 7.555849
8 1.2383247 -0.6707524 0 5 6.037726
9 1.0757814 0.3218499 1 8 6.143291
10 0.1946116 1.2179416 1 5 7.978560
11 2.0117812 2.1586796 1 10 7.874361
12 0.8898432 0.6972123 0 6 5.385322
13 -0.1212406 1.1876716 2 4 5.177703
14 -1.7146999 0.7461950 4 4 8.213977
15 1.6249309 -0.5770596 3 3 9.643076
16 0.4550664 0.3850054 3 1 7.990462
17 0.4838097 0.4057100 2 6 7.804504
18 1.4438362 0.7406866 2 2 7.630139
19 1.3212212 1.9000254 3 5 9.925476
20 1.0939013 1.5631757 2 6 7.538209
加载data.table包-
> library(data.table)
将数据帧df转换为data.table?
> setDT(df)
检查df是否是data.table-
> is.data.table(df)[1] TRUE
让我们再看一个例子-
> y1<-letters[1:20]> y2<-rep(c("Group1","Group2","Group3","Group4"),times=5)
> y3<-1:20
> df_new<-data.frame(y1,y2,y3)
> df_new
y1 y2 y3
1 a Group1 1
2 b Group2 2
3 c Group3 3
4 d Group4 4
5 e Group1 5
6 f Group2 6
7 g Group3 7
8 h Group4 8
9 i Group1 9
10 j Group2 10
11 k Group3 11
12 l Group4 12
13 m Group1 13
14 n Group2 14
15 o Group3 15
16 p Group4 16
17 q Group1 17
18 r Group2 18
19 s Group3 19
20 t Group4 20
> setDT(df_new)
> is.data.table(df_new)
[1] TRUE
以上是 如何在R中将数据帧转换为data.table? 的全部内容, 来源链接: utcz.com/z/335291.html