如何将R数据框中的多列与以列名作为因子的列一起转换为单个数字列?

当我们从任何来源接收数据时,对于预期的分析而言,它很可能不是理想的数据集,因此,我们需要根据数据的特征进行一些清理或挖掘。例如,如果我们将数据框的列名作为数值变量的因子级别,则我们可能希望以如下方式转换该数据框:将数值存储在单列中,并将列名存储在另一列中代表因素的列,这样我们就可以对这种类型的数据应用方差分析。为此,我们可以使用以下示例中所示的堆栈函数。

示例

请看以下数据帧-

x1<-rnorm(5)

x2<-rnorm(5)

x3<-rnorm(5)

x4<-rnorm(5)

df1<-data.frame(x1,x2,x3,x4)

df1

输出结果

      x1       x2          x3       x4

1 0.4231515 -0.02059351 -0.7323391 0.19199970

2 0.4816832 0.88382316 -0.5297544 0.17681651

3 -1.1703627 0.16328116 -0.7856500 0.03778934

4 -1.6009281 -0.93433554 1.5626258 -1.51384088

5 2.5075787 -0.94192579 -1.2340071 0.07821619

堆叠数据帧df1-

示例

df1<-stack(df1)

df1

输出结果

   values    ind

1 0.42315154  x1

2 0.48168320  x1

3 -1.17036266 x1

4 -1.60092810 x1

5 2.50757869  x1

6 -0.02059351 x2

7 0.88382316  x2

8 0.16328116  x2

9 -0.93433554 x2

10 -0.94192579 x2

11 -0.73233913 x3

12 -0.52975443 x3

13 -0.78564997 x3

14 1.56262579  x3

15 -1.23400706 x3

16 0.19199970  x4

17 0.17681651  x4

18 0.03778934  x4

19 -1.51384088 x4

20 0.07821619  x4

示例

y1<-rpois(5,2)

y2<-rpois(5,2)

y3<-rpois(5,2)

y4<-rpois(5,2)

df2<-data.frame(y1,y2,y3,y4)

df2

输出结果

  y1 y2 y3 y4

1 2   6 3   2

2 0   2 4   1

3 1   1 7   3  

4 1   1 2   3

5 0   4 2   0

堆叠数据帧df2-

示例

df2<-stack(df2)

df2

输出结果

 values ind

1  2    y1

2  0    y1

3  1    y1

4  1    y1

5  0    y1

6  6    y2

7  2    y2

8  1    y2

9  1    y2

10 4    y2

11 3    y3

12 4    y3

13 7    y3

14 2    y3

15 2    y3

16 2    y4

17 1    y4

18 3    y4

19 3    y4

20 0    y4

示例

z1<-rexp(5,1.02)

z2<-rexp(5,1.02)

z3<-rexp(5,1.02)

z4<-rexp(5,1.02)

df3<-data.frame(z1,z2,z3,z4)

df3

输出结果

      z1          z2       z3       z4

1 1.2908546 0.7256210 0.3485327 1.2388077

2 0.3096662 0.6603201 1.6009740 1.5944464

3 1.6638942 0.7771325 0.2083197 2.7376839

4 1.5370138 0.1080698 0.7180111 1.3909656

5 0.3302388 1.2617053 0.3907855 0.1516651

堆叠数据帧df3-

示例

df3<-stack(df3)

df3

输出结果

   values ind

1  1.2908546 z1

2  0.3096662 z1

3  1.6638942 z1

4  1.5370138 z1

5  0.3302388 z1

6  0.7256210 z2

7  0.6603201 z2

8  0.7771325 z2

9  0.1080698 z2

10 1.2617053 z2

11 0.3485327 z3

12 1.6009740 z3

13 0.2083197 z3

14 0.7180111 z3

15 0.3907855 z3

16 1.2388077 z4

17 1.5944464 z4

18 2.7376839 z4

19 1.3909656 z4

20 0.1516651 z4

以上是 如何将R数据框中的多列与以列名作为因子的列一起转换为单个数字列? 的全部内容, 来源链接: utcz.com/z/316031.html

回到顶部