如何在 R 数据框中添加每列的平方?

r programmingserver side programmingprogramming更新于 2025/4/9 1:37:17

要在 R 数据框中添加每列的平方,我们可以使用 setNames 函数和 cbind 函数对每个值求平方。当我们想在数据分析中使用变量的平方形式时,可能需要这样做。

查看下面给出的示例以了解如何完成此操作。

示例 1

以下代码片段创建了一个示例数据框 −

x1<-rpois(20,2)
x2<-rpois(20,5)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1

输出

创建以下数据框 −

  x1 x2 x3
1 2 7 1
2 3 6 1
3 4 5 2
4 1 2 0
5 0 6 0
6 2 3 1
7 1 4 2
8 2 4 1
9 1 3 0
10 2 3 1
11 1 5 2
12 3 3 1
13 3  4  0
14 1  7  1
15 3  3  3
16 2  5  0
17 2  8  2
18 0  5  3
19 6  1  0
20 4  4  3

要在 df1 中添加方列,请将以下代码添加到上述代码片段中 −

x1<-rpois(20,2)
x2<-rpois(20,5)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
setNames(as.data.frame(cbind(df1,df1^2)), c(names(df1),paste0(names(df1),'_2')))

输出

如果将上述所有代码作为单个程序执行,它将生成以下输出 −

   x1 x2 x3 x1_2 x2_2 x3_2
1  2  7  1   4   49   1
2  3  6  1   9   36   1
3  4  5  2  16   25   4
4  1  2  0   1    4   0
5  0  6  0   0   36   0
6  2  3  1   4    9   1
7  1  4  2   1   16   4
8  2  4  1   4   16   1
9  1  3  0   1    9   0
10 2  3  1   4    9   1
11 1  5  2   1   25   4
12 3  3  1   9    9   1
13 3  4  0   9   16   0
14 1  7  1   1   49   1
15 3  3  3   9    9   9
16 2  5  0   4   25   0
17 2  8  2   4   64   4
18 0  5  3   0   25   9
19 6  1  0  36    1   0
20 4  4  3  16   16   9

示例 2

以下代码片段创建了一个示例数据框 −

y1<-round(rnorm(20),2)
y2<-round(rnorm(20),2)
df2<-data.frame(y1,y2)
df2

输出

创建以下数据框 −

     y1     y2
1  -0.05   0.98
2  -1.54  -1.98
3   0.66   0.61
4  -0.54   1.22
5   0.34  -0.70
6  -0.26   0.84
7   0.19  -0.20
8   1.39   1.11
9  -1.11  -0.61
10  0.88  -0.10
11 -0.74  -0.03
12 -1.35  -0.94
13  0.99  -1.93
14  1.56  -2.36
15 -0.36   0.95
16  0.38   0.69
17 -0.07  -0.95
18 -0.28   0.68
19 -1.10   0.82
20  0.41  -0.27

要在 df2 中添加平方列,请将以下代码添加到上述代码片段 −

y1<-round(rnorm(20),2)
y2<-round(rnorm(20),2)
df2<-data.frame(y1,y2)
setNames(as.data.frame(cbind(df2,df2^2)), c(names(df2),paste0(names(df2),'_2')))

输出

如果将上述所有代码作为单个程序执行,则会生成以下输出 −

     y1    y2     y1_2     y2_2
1  -0.05   0.98   0.0025  0.9604
2  -1.54  -1.98   2.3716  3.9204
3   0.66   0.61   0.4356  0.3721
4  -0.54   1.22   0.2916  1.4884
5   0.34  -0.70   0.1156  0.4900
6  -0.26   0.84   0.0676  0.7056
7   0.19  -0.20   0.0361  0.0400
8   1.39   1.11   1.9321  1.2321
9  -1.11  -0.61   1.2321  0.3721
10  0.88  -0.10   0.7744  0.0100
11 -0.74  -0.03   0.5476  0.0009
12 -1.35  -0.94   1.8225  0.8836
13  0.99  -1.93   0.9801  3.7249
14  1.56  -2.36   2.4336  5.5696
15 -0.36   0.95   0.1296  0.9025
16  0.38   0.69   0.1444  0.4761
17 -0.07  -0.95   0.0049  0.9025
18 -0.28   0.68   0.0784  0.4624
19 -1.10   0.82   1.2100  0.6724
20  0.41  -0.27   0.1681  0.0729

相关文章