如何在 R 中按行将数据框值转换成向量?
数据可以以任何形式提供给我们,但有可能是它不是用于分析的合适形式。有时数据记录在数据框中,但我们可能需要把它作为向量。在这种情况下,我们必须将数据框中的值更改为向量。可以通过将数据框用 t 转置后,按照 .vector 的形式读取数据框值来实现这一点。
示例
考虑下面的数据框 -
> x1<-rep(c(1,2,3,4,5),times=4) > x2<-1:20 > x3<-rep(c(5,10,15,20),each=5) > df<-data.frame(x1,x2,x3) > df x1 x2 x3 1 1 1 5 2 2 2 5 3 3 3 5 4 4 4 5 5 5 5 5 6 1 6 10 7 2 7 10 8 3 8 10 9 4 9 10 10 5 10 10 11 1 11 15 12 2 12 15 13 3 13 15 14 4 14 15 15 5 15 15 16 1 16 20 17 2 17 20 18 3 18 20 19 4 19 20 20 5 20 20 > as.vector(t(df)) [1] 1 1 5 2 2 5 3 3 5 4 4 5 5 5 5 1 6 10 2 7 10 3 8 10 4 9 10 5 10 10 1 11 15 2 12 15 3 13 15 4 14 15 5 15 15 1 16 20 2 17 20 3 18 20 [55] 4 19 20 5 20 20 > Vector_df<-as.vector(t(df)) > sum(Vector_df) [1] 520 > mean(Vector_df) [1] 8.666667
我们来看看另一个示例 -
> y1<-20:1 > y2<-rep(c(2,4,6,8,10),times=4) > y3<-c(22,25,27,21,18,19,28,24,29,15,27,24,16,18,28,17,18,26,23,22) > df_y<-data.frame(y1,y2,y3) > df_y y1 y2 y3 1 20 2 22 2 19 4 25 3 18 6 27 4 17 8 21 5 16 10 18 6 15 2 19 7 14 4 28 8 13 6 24 9 12 8 29 10 11 10 15 11 10 2 27 12 9 4 24 13 8 6 16 14 7 8 18 15 6 10 28 16 5 2 17 17 4 4 18 18 3 6 26 19 2 8 23 20 1 10 22 > Vector_new<-as.vector(t(df_y)) > Vector_new [1] 20 2 22 19 4 25 18 6 27 17 8 21 16 10 18 15 2 19 14 4 28 13 6 24 12 8 29 11 10 15 10 2 27 9 4 24 8 6 16 7 8 18 6 10 28 5 2 17 4 4 18 3 6 26 [55] 2 8 23 1 10 22
广告