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


为了在 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

更新于: 2021年11月6日

1K+ 阅读量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告