R语言数据基本管理

来源:互联网 发布:删除数组中的某个元素 编辑:程序博客网 时间:2024/04/29 04:53

1.创建新变量

常用的有两种方法一是利用$符号直接创建。

> data1<-iris[,1:2]> data1$square<-data1$Sepal.Length*data1$Sepal.Width> head(data1)  Sepal.Length Sepal.Width square1          5.1         3.5  17.852          4.9         3.0  14.703          4.7         3.2  15.044          4.6         3.1  14.265          5.0         3.6  18.006          5.4         3.9  21.06
方法二利用transform来建。

> data1<-transform(data1,square1=Sepal.Length*Sepal.Width)
> head(data1)  Sepal.Length Sepal.Width square square11          5.1         3.5  17.85   17.852          4.9         3.0  14.70   14.703          4.7         3.2  15.04   15.044          4.6         3.1  14.26   14.265          5.0         3.6  18.00   18.006          5.4         3.9  21.06   21.06
2.变量的重新编码。把变量按照值进行分类等。

> mydata<-mtcars
> mydata$mm<-ifelse(mydata$cyl==6,"big","small")> head(mydata)                   mpg cyl disp  hp drat    wt  qsec vs am gear carb    mmMazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4   bigMazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4   bigDatsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 smallHornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1   bigHornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 smallValiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1   big
> mydata$cyl==6 [1]  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE[25] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
可以看到判断语句的结果是个逻辑值,然后把逻辑值转为特定的其他值。

3.假如改变某个值,可以用如下语句。

> mydata$cyl[mydata$cyl==8]<-NA
# 建立一个新列,对其中某一列的数据进行归类。
> mydata$new[mydata$disp>100 & mydata$disp<200]="差"> mydata$new[mydata$disp>200 & mydata$hp<300]="中"> mydata$new[mydata$disp>300]="好"> head(mydata)                   mpg cyl disp  hp drat    wt  qsec vs am gear carb    mm newMazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4   big  差Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4   big  差Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 small  差Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1   big  中Hornet Sportabout 18.7  NA  360 175 3.15 3.440 17.02  0  0    3    2 small  好Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1   big  中
4.变量的重命名。

若改变第五个变量的名。注意新的名字要加上双引号。

> head(w)                  mmppg cyl disp  hp drat  wwtt  qsec vs aamm gear carbMazda RX4          21.0   6  160 110 3.90 2.620 16.46  0    1    4    4Mazda RX4 Wag      21.0   6  160 110 3.90 2.875 17.02  0    1    4    4Datsun 710         22.8   4  108  93 3.85 2.320 18.61  1    1    4    1Hornet 4 Drive     21.4   6  258 110 3.08 3.215 19.44  1    0    3    1Hornet Sportabout  18.7   8  360 175 3.15 3.440 17.02  0    0    3    2Valiant            18.1   6  225 105 2.76 3.460 20.22  1    0    3    1
> names(w)[5]<-"ddrraatt"> names(w) [1] "mmppg"    "cyl"      "disp"     "hp"       "ddrraatt" "wwtt"     "qsec"     [8] "vs"       "aamm"     "gear"     "carb"    
还有有种命名方式是使用reshape包的rename函数,可以更改某个变量的名称。

> w<-rename(w,c(cyl="ccyyll",hp="hhpp"))> names(w) [1] "mmppg"    "ccyyll"   "disp"     "hhpp"     "ddrraatt" "wwtt"     "qsec"     [8] "vs"       "aamm"     "gear"     "carb" 








0 0
原创粉丝点击