如何使用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