数据框(data.frame)是R中最常处理的数据结构。
函数:data.frame(col1,col2,col3,....,row.name=NULL, check.rows = FALSE, check.names=TRUE, stringsAsFactors = default.stringsAsFactors())
其中的列向量col1, col2, col3,...可为任何类型(如字符型、数值型或逻辑型),每一列的名称可由函数names指定;
row.name用于指定各行(样本)的名称,默认没有名称,使用从1开始自增的序列来标识每一行;
check.rows用于用来检查行的名称和数量是否一致,默认为FALSE;
check.names来检查变量(列)的名称是否唯一且符合语法,默认为TRUE;
stringsAsFactors用来描述是否将字符型向量自动转换为因子,默认转换,若不改变的话使用stringsAsFactors = FALSE来指定即可。
每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。
先构建向量,再组成数据框。
直接用data.frame函数构建数据框。
R语言的下标索引是从1开始的,且下标索引为负数的话表示删除某个元素。
[] 可进行索引,括号内对应的是[行下标, 列下标]。
[1] 1 2 3 4 5 6 7 8
[1] "four"
[1] 1 2 3 4 5 6 7 8
[1] "four"
[1] 1 2 3 4 5 6 7 8
[1] "one" "two" "three"
attach、detach和with()
函数attach()可将数据框添加到R的搜索路径中。
函数detach()将数据框从搜索路径中移除。
函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用。
with()就是把所有操作都限制在数据框上。
The following objects are masked by .GlobalEnv:
[1] 1 2 3 4 5 6 7 8
[1] "n1" "n2" "n3" "n4" "n5" "n6" "n7" "n8"
[1] 8
[1] 3
[1] 8
[1] "name""values" "values2"
[1] "r1" "r2" "r3" "r4" "r5" "r6" "r7" "r8"
[1] 8 3
[1] "data.frame"
[1] "numeric"
[1] "character"
Length:8 Min. :1.00 Min. :1.00
Class :character 1st Qu.:2.75 1st Qu.:2.75
Mode :character Median :4.50 Median :4.50
Mean :4.50 Mean :4.50
3rd Qu.:6.25 3rd Qu.:6.25
Max. :8.00 Max. :8.00
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
前一段工作太忙了,终于又有时间来继续学习了
列表就是一些对象(或成分,component)的有序集合。列表允许整合若干(可能无关)对象到单个对象名下。也就是说,某个列表中,可能是托干个向量、矩阵、数据框,甚至是其他列表的组合。函数list()可创建列表。
下面创建一个列表
上述例子创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一个字符型向量。可以任意组合任意多的对象,并将它们保存为一个列表。
注意:可以通过双重括号知名代表某个成分的数字或者名称来访问列表中的元素。
列表允许以一种简单的方式组织和重新调用不相干的信息。其次,许多R函数的运行结果都是以列表的形式返回的。
一些小tips:
1、对象名称中的句点 . 没有特殊意义,但$ 和其他语言中句点有相似的意义,即指定一个数据框或列表中的某些部分。例如,A$x是指数据框A中的变量x。
2、R不提供多行注释或者是块注释功能。
3、将一个值赋予某个向量、矩阵、数组或者列表中一个不存在的元素时,R将自动扩展这个数据结构以容纳新值。
4、R中没有标量。标量以单元素向量的形式出现。
5、R中的下标不从0开始,而是从1开始。
6、变量无法被生命。他们在首次被赋值时生成。