列表
构造列表 list
列表是一种特别的对象集合,它的元素也是由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型. 元素本身允许是其它复杂数据类型,比如,列表的一个元素允许是列表
Lst <- list(name="Fred", wife="Mary", no.children=3, child.ages=c(4,7,9)); Lst
列表元素引用
列表名[[ 下标序号/元素名 ]]
两重记号取出列表的一个元素,结果与该元素类型相同
一重记号,结果是列表的一个子列表(结果类型仍为列表)
列表名$元素名
列表的修改
修改
该列表元素引用赋值即可
新增
给不存在的元素名称赋值
删除
给存在的元素名称赋空值(NULL)
列表拼接 c()
list.ABC <- c(list.A,list.B,list.C); list.ABC
数据框 data.frame
数据框是R的一种数据结构,通常是矩阵形式的数据,但矩阵各列可以是不同类型的。
数据框每列是一个变量,每行是一个观测。
数据框生成
df <- data.frame(Name = c("Alice","Becka","James","Jeffrey","John"),
Sex=c("F","F","M","M","M"),
Age=c(13,13,12,13,12),
Height=c(56.5,65.3,57.3,62.5,59),
Weight=c(84.0,98.0,83.0,84.0,99.5));df
矩阵转数据框 data.frame(矩阵)
若矩阵原来有列名则列明被作为数据框的变量名;否则系统自动为各列起一个变量名
列表转数据框 as.data.frame(列表)
Lst <- list(Name = c("Alice","Becka","James","Jeffrey","John"),
Sex=c("F","F","M","M","M"),
Age=c(13,13,12,13,12),
Height=c(56.5,65.3,57.3,62.5,59),
Weight=c(84.0,98.0,83.0,84.0,99.5));Lst
数据框引用
使用下标/下标向量
df[1:2, 3:5]
数据框各变量按列表引用 [[ ]]
与 $
df[["Height"]]
df$Weight
数据框的变量(列名) names()
数据框的行名 rownames()
attach()函数
将数据框中的变量“连接”到内存中
取消连接,调用 detach()
列表与数据框编辑 edit()
原数据没有改动,改动的数据存放在新变量中
xold <- data.frame(Name = c("Alice","Becka","James","Jeffrey","John"),
Sex=c("F","F","M","M","M"),
Age=c(13,13,12,13,12),
Height=c(56.5,65.3,57.3,62.5,59),
Weight=c(84.0,98.0,83.0,84.0,99.5));xold