如何在 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
广告