目录
1.列表
列表“list”是一种比较的特别的对象集合,不同的序号对于不同的元素,当然元素的也可以是不同类型的,那么我们用R语言先简单来构造一个列表。
1.1创建
> a<-c(1:20) > b<-matrix(1:20,4,5) > mlist<-list(a,b) > mlist [[1]] [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 15 16 17 18 19 20 [[2]] [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20
1.2 访问
1.2.1 下标访问
> mlist[1] [[1]] [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 15 16 17 18 19 20 > mlist[2] [[1]] [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20
1.2.2 名称访问
> state.center["x"] $x [1] -86.7509 -127.2500 -111.6250 -92.2992 [5] -119.7730 -105.5130 -72.3573 -74.9841 [9] -81.6850 -83.3736 -126.2500 -113.9300 [13] -89.3776 -86.0808 -93.3714 -98.1156 [17] -84.7674 -92.2724 -68.9801 -76.6459 [21] -71.5800 -84.6870 -94.6043 -89.8065 [25] -92.5137 -109.3200 -99.5898 -116.8510 [29] -71.3924 -74.2336 -105.9420 -75.1449 [33] -78.4686 -100.0990 -82.5963 -97.1239 [37] -120.0680 -77.4500 -71.1244 -80.5056 [41] -99.7238 -86.4560 -98.7857 -111.3300 [45] -72.5450 -78.2005 -119.7460 -80.6665 [49] -89.9941 -107.2560
1.2.3 符号访问
> state.center$x [1] -86.7509 -127.2500 -111.6250 -92.2992 [5] -119.7730 -105.5130 -72.3573 -74.9841 [9] -81.6850 -83.3736 -126.2500 -113.9300 [13] -89.3776 -86.0808 -93.3714 -98.1156 [17] -84.7674 -92.2724 -68.9801 -76.6459 [21] -71.5800 -84.6870 -94.6043 -89.8065 [25] -92.5137 -109.3200 -99.5898 -116.8510 [29] -71.3924 -74.2336 -105.9420 -75.1449 [33] -78.4686 -100.0990 -82.5963 -97.1239 [37] -120.0680 -77.4500 -71.1244 -80.5056 [41] -99.7238 -86.4560 -98.7857 -111.3300 [45] -72.5450 -78.2005 -119.7460 -80.6665 [49] -89.9941 -107.2560
1.3 注意
一个中括号和两个中括号的区别
一个中括号输出的是列表的一个子列表,两个中括号输出的是列表的元素
> class(mlist[1]) [1] "list" > class(mlist[[1]]) [1] "integer"
我们添加元素时要注意用两个中括号
2.数据框
数据框是R种的一个数据结构,他通常是矩阵形式的数据,但矩阵各列可以是不同类型的,数据框每列是一个变量,没行是一个观测值。
但是,数据框又是一种特殊的列表对象,其class属性为“data.frame”,各列表成员必须是向量(数值型、字符型、逻辑型)、因子、数值型矩阵、列表或者其它数据框。向量、因子成员为数据框提供一个变量,如果向量非数值型会被强型转换为因子。而矩阵、列表、数据框等必须和数据框具有相同的行数。
2.1 创建
> state<-data.frame(state.name,state.abb,state.area) > state state.name state.abb state.area 1 Alabama AL 51609 2 Alaska AK 589757 3 Arizona AZ 113909 4 Arkansas AR 53104 5 California CA 158693 6 Colorado CO 104247 7 Connecticut CT 5009 8 Delaware DE 2057 9 Florida FL 58560 10 Georgia GA 58876 11 Hawaii HI 6450 12 Idaho ID 83557 13 Illinois IL 56400 14 Indiana IN 36291 15 Iowa IA 56290 16 Kansas KS 82264 17 Kentucky KY 40395 18 Louisiana LA 48523 19 Maine ME 33215 20 Maryland MD 10577 21 Massachusetts MA 8257 22 Michigan MI 58216 23 Minnesota MN 84068 24 Mississippi MS 47716 25 Missouri MO 69686 26 Montana MT 147138 27 Nebraska NE 77227 28 Nevada NV 110540 29 New Hampshire NH 9304 30 New Jersey NJ 7836 31 New Mexico NM 121666 32 New York NY 49576 33 North Carolina NC 52586 34 North Dakota ND 70665 35 Ohio OH 41222 36 Oklahoma OK 69919 37 Oregon OR 96981 38 Pennsylvania PA 45333 39 Rhode Island RI 1214 40 South Carolina SC 31055 41 South Dakota SD 77047 42 Tennessee TN 42244 43 Texas TX 267339 44 Utah UT 84916 45 Vermont VT 9609 46 Virginia VA 40815 47 Washington WA 68192 48 West Virginia WV 24181 49 Wisconsin WI 56154 50 Wyoming WY 97914 >
2.2 访问
2.2.1 下标访问
> state[1] state.name 1 Alabama 2 Alaska 3 Arizona 4 Arkansas 5 California 6 Colorado 7 Connecticut 8 Delaware 9 Florida 10 Georgia 11 Hawaii 12 Idaho 13 Illinois 14 Indiana 15 Iowa 16 Kansas 17 Kentucky 18 Louisiana 19 Maine 20 Maryland 21 Massachusetts 22 Michigan 23 Minnesota 24 Mississippi 25 Missouri 26 Montana 27 Nebraska 28 Nevada 29 New Hampshire 30 New Jersey 31 New Mexico 32 New York 33 North Carolina 34 North Dakota 35 Ohio 36 Oklahoma 37 Oregon 38 Pennsylvania 39 Rhode Island 40 South Carolina 41 South Dakota 42 Tennessee 43 Texas 44 Utah 45 Vermont 46 Virginia 47 Washington 48 West Virginia 49 Wisconsin 50 Wyoming
2.2.2 名称访问
> state["state.name"] state.name 1 Alabama 2 Alaska 3 Arizona 4 Arkansas 5 California 6 Colorado 7 Connecticut 8 Delaware 9 Florida 10 Georgia 11 Hawaii 12 Idaho 13 Illinois 14 Indiana 15 Iowa 16 Kansas 17 Kentucky 18 Louisiana 19 Maine 20 Maryland 21 Massachusetts 22 Michigan 23 Minnesota 24 Mississippi 25 Missouri 26 Montana 27 Nebraska 28 Nevada 29 New Hampshire 30 New Jersey 31 New Mexico 32 New York 33 North Carolina 34 North Dakota 35 Ohio 36 Oklahoma 37 Oregon 38 Pennsylvania 39 Rhode Island 40 South Carolina 41 South Dakota 42 Tennessee 43 Texas 44 Utah 45 Vermont 46 Virginia 47 Washington 48 West Virginia 49 Wisconsin 50 Wyoming
2.2.3 符号访问
> state$state.name [1] "Alabama" "Alaska" [3] "Arizona" "Arkansas" [5] "California" "Colorado" [7] "Connecticut" "Delaware" [9] "Florida" "Georgia" [11] "Hawaii" "Idaho" [13] "Illinois" "Indiana" [15] "Iowa" "Kansas" [17] "Kentucky" "Louisiana" [19] "Maine" "Maryland" [21] "Massachusetts" "Michigan" [23] "Minnesota" "Mississippi" [25] "Missouri" "Montana" [27] "Nebraska" "Nevada" [29] "New Hampshire" "New Jersey" [31] "New Mexico" "New York" [33] "North Carolina" "North Dakota" [35] "Ohio" "Oklahoma" [37] "Oregon" "Pennsylvania" [39] "Rhode Island" "South Carolina" [41] "South Dakota" "Tennessee" [43] "Texas" "Utah" [45] "Vermont" "Virginia" [47] "Washington" "West Virginia" [49] "Wisconsin" "Wyoming"
2.2.4 函数访问
> attach(state) The following objects are masked from package:datasets:
2.2.4 函数访问
> attach(state) The following objects are masked from package:datasets: state.abb, state.area, state.name > state.name [1] "Alabama" "Alaska" [3] "Arizona" "Arkansas" [5] "California" "Colorado" [7] "Connecticut" "Delaware" [9] "Florida" "Georgia" [11] "Hawaii" "Idaho" [13] "Illinois" "Indiana" [15] "Iowa" "Kansas" [17] "Kentucky" "Louisiana" [19] "Maine" "Maryland" [21] "Massachusetts" "Michigan" [23] "Minnesota" "Mississippi" [25] "Missouri" "Montana" [27] "Nebraska" "Nevada" [29] "New Hampshire" "New Jersey" [31] "New Mexico" "New York" [33] "North Carolina" "North Dakota" [35] "Ohio" "Oklahoma" [37] "Oregon" "Pennsylvania" [39] "Rhode Island" "South Carolina" [41] "South Dakota" "Tennessee" [43] "Texas" "Utah" [45] "Vermont" "Virginia" [47] "Washington" "West Virginia" [49] "Wisconsin" "Wyoming"