如何在R中将data.table行提取为向量?

data.table对象类似于数据框架对象,但是几乎没有什么可以专门应用于data.table的对象,因为data.table包函数仅是为data.table对象定义的。如果要提取data.table行作为向量,则可以将as.vector函数与as.matrix一起使用,以便as.vector可以正确读取该行。

加载data.table包:

> library(data.table)

请看以下向量并创建一个data.table对象:

示例

> x1<-sample(LETTERS[1:3],20,replace=TRUE)

> x2<-sample(LETTERS[1:4],20,replace=TRUE)

> x3<-sample(LETTERS[1:5],20,replace=TRUE)

> x4<-sample(LETTERS[2:5],20,replace=TRUE)

> x5<-sample(LETTERS[3:5],20,replace=TRUE)

> DT1<-data.table(x1,x2,x3,x4,x5)

> DT1

输出结果

x1 x2 x3 x4 x5

1: B C C D E

2: B C D B E

3: B C C B E

4: C D A C E

5: C C D E D

6: A D D E E

7: A C A D E

8: B B E D E

9: C D B D C

10: A B E E E

11: C A D B C

12: C D A B E

13: C A E C C

14: A A A B C

15: C C E D D

16: B B C D D

17: A A D D E

18: B C D C E

19: C B D D E

20: C B C C D

将行提取为向量:

示例

> Row1<-as.vector(as.matrix(DT1[1]))

> Row1

[1] "B" "C" "C" "D" "E"

> is.vector(Row1)

[1] TRUE

> Row2<-as.vector(as.matrix(DT1[2]))

> Row2

[1] "B" "C" "D" "B" "E"

> is.vector(Row2)

[1] TRUE

> Row5<-as.vector(as.matrix(DT1[5]))

> Row5

[1] "C" "C" "D" "E" "D"

> is.vector(Row5)

[1] TRUE

> Row10<-as.vector(as.matrix(DT1[10]))

> Row10

[1] "A" "B" "E" "E" "E"

> is.vector(Row10)

[1] TRUE

> is.vector(Row10)

[1] TRUE

> Row18<-as.vector(as.matrix(DT1[18]))

> Row18

[1] "B" "C" "D" "C" "E"

> is.vector(Row18)

[1] TRUE

让我们看另一个例子:

示例

> v1<-rnorm(20,1,2.3)

> v2<-rnorm(20,1,0.5)

> v3<-rnorm(20,1,0.275)

> v4<-rnorm(20,1,1.05)

> v5<-rnorm(20,1,0.80)

> v6<-rnorm(20,1,0.007)

> DT2<-data.table(v1,v2,v3,v4,v5)

> DT2

输出结果

v1 v2 v3 v4 v5

1: 3.0343715 1.50341176 0.7697336 1.1133711891 -0.6121658

2: -0.9852696 1.67132579 0.6735064 -0.4264159308 2.0648977

3: -0.1772886 0.92605020 1.6350086 -0.1306917763 0.2362759

4: -1.5987827 1.21532168 0.8452163 1.1970737419 1.3881985

5: 6.6638926 0.99153886 0.9312445 0.6709141801 0.1946506

6: -1.1456574 1.17003856 0.9168460 0.2278830477 0.2643338

7: 0.9558536 0.66266842 0.8268585 -0.0526142041 1.8055215

8: 0.3400104 1.26874416 0.5101432 -0.0008413192 1.1666347

9: 1.0587648 -0.02557012 1.2874365 2.6673114134 1.3532956

10: -1.4587479 2.04442403 0.6002114 0.6081632615 3.0083355

11: 5.5237850 0.89874276 1.3020908 2.0082148902 1.3465480

12: 2.2144533 1.13244217 1.0143068 -0.7514250499 1.4106594

13: -0.4355997 0.99994424 1.3501380 2.2319042291 0.9450547

14: 1.2946799 0.26674188 0.7165047 0.5596915326 0.2925462

15: 0.2576993 0.68885846 1.4244761 2.2760543161 -0.4573567

16: 1.2538944 1.82497873 0.6419318 0.0770117052 1.7090877

17: -1.3401457 0.58804734 1.1919157 2.9846478595 0.2938903

18: 4.6633082 0.50940850 1.5545408 1.5738985335 0.3506627

19: -2.0482789 0.82047093 1.1950368 -0.9818883889 0.6690500

20: -4.4615852 1.23548986 0.6505639 1.1960534288 2.3088988

示例

> Row1<-as.vector(as.matrix(DT2[1]))

> Row1

[1] 3.0343715 1.5034118 0.7697336 1.1133712 -0.6121658

> is.vector(Row1)

[1] TRUE

> Row12<-as.vector(as.matrix(DT2[12]))

> Row12

[1] 2.214453 1.132442 1.014307 -0.751425 1.410659

> is.vector(Row12)

[1] TRUE

> Row20<-as.vector(as.matrix(DT2[20]))

> Row20

[1] -4.4615852 1.2354899 0.6505639 1.1960534 2.3088988

> is.vector(Row20)

[1] TRUE

> Row15<-as.vector(as.matrix(DT2[15]))

> Row15

[1] 0.2576993 0.6888585 1.4244761 2.2760543 -0.4573567

> is.vector(Row15)

[1] TRUE

> Row19<-as.vector(as.matrix(DT2[19]))

> Row19

[1] -2.0482789 0.8204709 1.1950368 -0.9818884 0.6690500

> is.vector(Row19)

[1] TRUE

以上是 如何在R中将data.table行提取为向量? 的全部内容, 来源链接: utcz.com/z/316412.html

回到顶部