字符串
1. 规则
单双引号均被承认
单双引号可以相互界定,但双引号不能插入双引号,单引号亦同。
2. 操作
以下操作均仅为格式化,显示需要两步法赋值或者直接print
(1)连接
格式:
paste(arg1, arg2, arg3)
paste(arg, sep = " ") #sep: separate symbol
paste(arg, sep = , collapse = " ") #collapse消除自变量间空格
(2)格式化数字和字符串
format(x, digits, nsmall, scientific, width =, justify = c("l", "r", "c", "none")
#x=arg, digits显示位数,nsmall小数点后位数,width缩进长度,justify显示位置
更改大小写
toupper("string")
tolower()
(3)提取
substring(str, first, last)
(4) 其他:
计算字符数
nchar(x)
向量
原子向量见1数值类型,向量为最基本的数值类型
1. 创建向量
单元素不赘诉
多元素向量:
:#increment by 1
seq(small, large, by = increment)
c() #numtochar
2. 索引
[]
negative index: drop
0/1 index OR TRUE/FALSE index: drop
3. 运算
加减乘除不同长度向量时,短向量循环以完成
sort() #排序
矩阵
1. 创建
matrix(data, nrow, ncol, byrow = TRUE/FALSE, dimnames = list(a, b)) #dimnames分配行列名称,还需另外list行列名称字符串;data可以多元素组合如c()
格式见下
2. 索引
matrix[rownumber, columnnumber] #null, null only
3. 计算
行列数相同
列表
列表可包括数字、字符串、向量、函数、矩阵、列表等
1. 创建
list()
2. 索引访问
list[num]
list[list_name]
list[list_element_name]
3. 编辑
list_data[position] #可视为元素
直接传递,或者null
合并:c(list1, lsit2,...)
转化成向量:unlist(list) #进行计算等
命名元素:names(list) <- c()
数组
两个维度以上存储数据的数据对象(参考矩阵)
两个函数:array()创建数组,dim(a, b, c)创建c个a X b数组
1. 创建
array(data, dim, dimnames)
2. 编辑:
命名行列:dimnames = list(row, column, matrix)
3. 索引
x <- array()
print(x[a,b,c])
array(arraryname$variablename)
4. 计算
(1)以matrix为单位计算
matrix <- array[a, b, c]
(2)跨数组
apply(x, dimension, function) #xis.array, dimension: 1row, 2column, both c(1,2)
因子
接下来两个概念比前面的元素难以理解,认真阅读
因子:分类,储存为级别;元素:字符串,整数; #简单理解为字符串双引号去掉
1. 创建
factor(datalist) #转变成因子
print(is.factor(datalist))
gl(n, k, labels) #n levels, k for copy times, labels for levels
2. 编辑
编辑级别顺序
factor(data, levels = c())
数据帧
表或二维阵列状,列为变量,行包含每一列变量的一组值
存储可数字,因子,字符类型
每列包含相同数量数据项
1. 创建
data.frame(
col_variable 1 = c(a,b,c...),
col_variable 2 = c(a1,b1,c1...),
col3...
)
print(s.data)
2. 编辑
属性
str()
summary()
添加
(1)列:data.frame$newrow <- c()
(2)行:新建相同结构iframe,rbind(frame1, frame2)
3. 索引
data.frame(data.name$column,...)
data.frame[c(), c()] #row, column
数据重塑
1. 合并
cbind() #向量
rbind() #数据帧
merge() #合并共同列
merge(x =, y = frame, by, all) #by, by.x, by.y default or specify by =c(); all default FALSE, i.e. only shared columns can be shown, all.x, all.y =TRUE)
2. 拆分,列转化为行
melt(ships, id = c(column_name)
3. 重构 #归类
cast(ships, a+b~variable, sum)