数据结构
向量 | vector |
矩阵 | matrix |
数组 | array |
数据框 | dataframe |
Vector
向量由元素组成,元素 = 数字or字符串(chr)。
赋值
x <- c(1,2,3) # 由元素1,2,3组成的向量
x <- 1:10 # 1-10的所有整数
x <- seq(1,10, by = 0.5) # 1-10每隔0.5取一个数
x <- rep(1:3, times=2) # 1-3重复2次
提取元素
根据元素位置:
x[2:4] # 第2-4个元素
x[-(2:4)] # 除了第2-4个元素
x[c(1,3)] # 第1和第3个元素
根据值:
x[x==1] # 等于1的值的元素
x[x<0]
x[x %in% c(1,2,3)] #存在于向量c(1,2,5)中的元素
Dataframe
读取数据
read.table(file= "",sep="\t",header = T) #\t 为Tab 水平制表
名称
colnames()
rownames()
colnames(x)[1] <- "123" # 左上角第一个重命名
X <- read.csv(file = "exercise.txt", sep = " ", header = T, row.names=1) # 第一列为行名
注意大小写Sensitive
导出
write.table(X, file = "xx.txt", sep = ",", quote = F) # 分隔符为逗号
# 字符串不加双引号,默认格式带双引号
变量保存与重新加载
保存格式 .RData
save.image(file="xxx.RData") # 保存当前所有变量
save(X,file="x.RData") # 保存X这个变量
load("xxx.RData")
提取元素
data[x,y] # 第x行第y列
data[,y]
data[y] #第y列 同上
data[x:y] # 第x到第y列
data[c(x,y)] # 第x和第y列 与上面不同
data$colname #支持tab补齐 只能提取一列
直接使用数据框的变量
方法1:attach
attach(dataframe_name) #添加至搜索环境
plot(colname1,colname2) # 作图只需输入列名,不需要$
detach(a) # 做完图将a删除出搜索环境
注意:两个以上数据框列名有冲突,attach会报错
方法2:with
with(dataframe_name,{
plot(colname1,colname2)
x <<- summary(colname2)# 求和并赋值给x, <<为全局变量,出大括号仍然有效
})
作业
save(X,file="test.RData")报错:x not found
原因:没有X这个变量,检查是否大小写出错