learn R 学习笔记(五)

列表和数据框

list() #创建列表
month.abb #列出12月名称的简写
names() #列表元素命名
** 原子变量 递归变量 **
is.atomic() #测试是否属于原子变量
is.recursive() 测试是否属于递归变量

** 列表的维度和算术运算**

  • 列表没有维度
  • 列表的长度是顶层元素的数目
  • 算术运算对列表不起作用

** 索引列表 **

  • 方括号,正或负的下标,元素名称或逻辑索引 结果是一个列表
  • 双方括号传入整数或者指定该元素的名称字符串 结果是列表的元素
  • 对于列表的命名元素,可以使用美元符号$
  • 可以通过嵌套方括号或传入向量来访问嵌套元素

** 向量和列表之间的转换 **
as.list() #转换为列表
unlist() #转换混合列表为向量

** 组合列表 **
c() #拼接列表,拼接列表和向量,向量自动转换为列表
cbind() rbind() #尽量不用
NULL #空的变量 创建列表时可能会想指定一个元素,表明它必须存在但没有赋值。
NA 一个标量值;
NULL 长度为零不占用任何空间
*要删除列表中的元素,把元素设置为NULL就会删除它 *
is.null() #测试是否为NULL值
list(NULL) #将现有元素设置为NULL值

** 成对列表 **
formals() #返回一个函数参数的成对列表
成对列表与列表的区别:长度为0的成对的列表为NULL,长度为0的列表是一个空列表。

** data.frame() ** #创建数据框

  • 数据框每列的类型可与其他列不同,但同一列的元素类型必须相同
  • 行自动编号,如果输入的任何向量有名称,行名称取自第一个向量名称,这种命名规则可以传入row.names = NULL 覆盖掉
  • 还可以通过给row.names传入一个向量来为每行命名
  • 默认情况下列名必须是唯一且有效的变量名称,此功能可以通过参数check.names = FALSE来关闭

rownames()
colnames()
dimnames()
nrow()
ncol()
dim()

** 索引数据框 **

  • 方括号里分别对行和列使用正整数、负整数、逻辑值和字符
  • 只选择一列,带有正整数或名称的双方括号或带有名称的美元符号

subset() #获取数据框子集,三个参数(数据框,行的条件逻辑向量,保留的名字向量),直接键入行列名称
cbind()
rbind()
merge() #根据两个数据框相同的列时合并,by参数指定共享列
如果数据框只包含数值,可以使用colSums colMeans rowSums
rowMeans函数

你可能感兴趣的:(learn R 学习笔记(五))