如何在 R 中使用 mutate 函数添加新列到数据框?
R 中 dplyr 包的 mutate 函数可以帮助我们将新列添加到数据框中,使用 mutate 的好处是我们在添加新列时可以决定新列的位置。例如,如果我们有一个名为 df 的数据框,它包含三列 x、y、a,那么我们可以使用 mutate 函数在 y 之后添加一个新列 z。要了解如何做到这一点,请查看下面的示例。
示例 1
考虑下面的数据框:
> x1<-rpois(20,2) > x3<-rpois(20,5) > df1<-data.frame(x1,x3) > df1
输出
x1 x3 1 2 3 2 1 7 3 1 6 4 5 6 5 2 7 6 5 2 7 1 7 8 2 5 9 1 4 10 2 7 11 2 3 12 1 6 13 3 5 14 3 4 15 2 7 16 3 7 17 6 7 18 2 9 19 1 5 20 1 5
加载 dplyr 包并在 df1 中的 x1 之后添加新列 x2:
> library(dplyr) > df1%>%mutate(x2=rpois(20,1),.after=x1)
输出
x1 x2 x3 1 2 0 3 2 1 0 7 3 1 1 6 4 5 0 6 5 2 1 7 6 5 0 2 7 1 1 7 8 2 1 5 9 1 0 4 10 2 1 7 11 2 0 3 12 1 1 6 13 3 1 5 14 3 1 4 15 2 1 7 16 3 4 7 17 6 1 7 18 2 2 9 19 1 1 5 20 1 4 5
示例 2
> y1<-rnorm(20) > y2<-rnorm(20) > y4<-rnorm(20) > df2<-data.frame(y1,y2,y4) > df2
输出
y1 y2 y4 1 1.21750225 -1.33082010 0.7365231 2 0.24052365 -1.19657893 -0.7325931 3 0.82363925 -0.03890292 -0.3103461 4 -0.28315390 -0.20730053 -1.0066420 5 -0.56196875 -0.41592524 0.4996899 6 0.90983596 0.66105140 -0.9552844 7 1.14413650 1.20610045 0.9542341 8 0.03566065 1.31518070 0.2722798 9 1.72309925 0.55267260 0.3036829 10 1.27783338 -0.61818175 -0.2573076 11 0.22074289 1.23057901 0.5180043 12 1.60663571 -1.00737269 1.1614623 13 -0.75813279 -0.36594209 0.3923075 14 -0.31492265 1.30409915 -0.2759040 15 -1.03101619 0.15687986 0.8609099 16 -0.37968676 -0.04247421 -0.7490176 17 -1.90078740 -0.61468534 1.0015994 18 -0.76753148 0.21451207 -0.1875631 19 -0.36281597 -0.94474847 -1.1014309 20 -1.90049600 -0.20750306 2.1602226
在 df2 中的 y2 之后添加新列 y3:
> df2%>%mutate(y3=rnorm(20,10,0.5),.after=y2)
输出
y1 y2 y3 y4 1 1.21750225 -1.33082010 8.801898 0.7365231 2 0.24052365 -1.19657893 9.592606 -0.7325931 3 0.82363925 -0.03890292 10.088155 -0.3103461 4 -0.28315390 -0.20730053 9.297835 -1.0066420 5 -0.56196875 -0.41592524 9.463427 0.4996899 6 0.90983596 0.66105140 9.494079 -0.9552844 7 1.14413650 1.20610045 9.689292 0.9542341 8 0.03566065 1.31518070 10.664904 0.2722798 9 1.72309925 0.55267260 10.778179 0.3036829 10 1.27783338 -0.61818175 9.872532 -0.2573076 11 0.22074289 1.23057901 9.301869 0.5180043 12 1.60663571 -1.00737269 10.176794 1.1614623 13 -0.75813279 -0.36594209 9.367227 0.3923075 14 -0.31492265 1.30409915 11.086966 -0.2759040 15 -1.03101619 0.15687986 9.082294 0.8609099 16 -0.37968676 -0.04247421 9.547622 -0.7490176 17 -1.90078740 -0.61468534 9.694575 1.0015994 18 -0.76753148 0.21451207 10.583576 -0.1875631 19 -0.36281597 -0.94474847 10.075352 -1.1014309 20 -1.90049600 -0.20750306 10.106721 2.1602226
广告