如何在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

回到顶部