如何在 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+ 閱讀量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.