R语言入门第二集 实验一:R 语言数据结构、数据导入与数据处理
二、答案更新纠正
2.8 向量C的最大值及最大值对应的索引
答案:
C[which.max(C)]
CMaxIndex<-which.max(C)
CMaxIndex
- 应该为:
2.8 向量C的长度,最大值及其索引
length(C)
C[which.max(C)]
CMaxIndex<-which.max(C)
CMaxIndex
3.3 输出algae1的概要信息,数据的维度,字段名称,查看season、size和NO3各列的数据类型
答案:
summary(algae1)
dim(algae1)
colnames(algae1)
str(algae1$season)
str(algae1$size)
str(algae1$NO3)
- 应该为:
summary(algae1)
dim(algae1)
colnames(algae1)
class(algae1$season)
class(algae1$size)
class(algae1$NO3)
3.4 选出季节为夏天的样本保存到newalgael中,输出newalgael样本行数
答案:
newalgae1<-algae1[algae1$season=="summer",] newalgae1
- 应该为:
newalgae1<-algae1[algae1$season=="summer",]
nrow(newalgae1)
三、答案
实验一 R语言数据结构、数据导入与数据处理
1.安装R环境,熟悉环境,熟悉R NOTEBOOK的用法
2.基本数据结构练习
2.1 创建数值从1到10,间隔为2,名称为A的向量
A<-seq(1,10,2)
A
2.2 将数字1到12每个重复3次写入向量B中:(1,1,1,…,12,12,12) 提示rep函数
B<-rep(1:12,each=3)
B
2.3 输出B向量的长度和去重后的向量数值
length(B)
unique(B)
2.4 输出A和B的交集,并集C ,差集
intersect(A,B)
C<-union(A,B)
C
setdiff(B,A)
2.5 将集合C按降序排序
sort(C,decreasing = T)
2.6 选取C的第3个元素;第4到最后的元素;数值大于等于3小于7的元素
C[3]
C[4:12]
subset(C,C>=3&C<7)
2.7 将数值型向量C转化为字符型
class(C)
D <- as.character(C)
class(D)
2.8 向量C的长度,最大值及其索引
length(C)
C[which.max(C)]
CMaxIndex<-which.max(C)
CMaxIndex
2.9 将A转化成数组类型,变量名为a,查看a的类型
class(A)
a<-array(A)
class(a)
2.10 用1~20的数字构成两个4*5的矩阵,其中M1为按列输入,M2为按行输入,计算M3为M1+M2;并构建M4,它由M3各列构成,但不包含第3列。
M1<-matrix(1:20,c(4,5))
M1
M2<-matrix(1:20,c(4,5),byrow = TRUE)
M2
M3<-M1+M2
M3
M4<-M3[,-3]
M4
2.11 用1~9的数字构成一个3*3的按列输入的矩阵M5;求M5的对角阵M6;计算M5与M6的矩阵乘法得到M7;求M7的转置矩阵M8
M5<-matrix(1:9,c(3,3))
M5
M6<-diag(diag(M5))
M6
M7<-M5%*%M6
M7
M8<-t(M7)
M8
2.12 用1~12的数字构成一个4*3的按列输入的矩阵M9,求M9的列加和;求M9的行平均
M9 <- matrix(1:12, c(4, 3))
M9
colSums(M9)
rowMeans(M9)
3.数据的导入和处理对象常用函数练习
3.1 从csv文件中读取algae数据集赋值给algae1
algae1<-read.csv("algae.csv")
3.2 查看algae1的前10条数据
head(algae1, n = 10)
3.3 输出algae1的概要信息,数据的维度,字段名称,查看season、size和NO3各列的数据类型
summary(algae1)
dim(algae1)
colnames(algae1)
class(algae1$season)
class(algae1$size)
class(algae1$NO3)
3.4 选出季节为夏天的样本保存到newalgael中,输出newalgael样本行数
newalgae1<-algae1[algae1$season=="summer",]
nrow(newalgae1)
3.5 将newalgael的列cl中的缺失值用本列的中位数填充
newalgae1$Cl
newalgae1$Cl[is.na(newalgae1$Cl)]<- median(newalgae1$Cl,na.rm = TRUE)
newalgae1$Cl
3.6 将algae1删除含有缺失值的样本,输出原始样本的行数和剩余样本行数
nrow(algae1)
algae1<-na.omit(algae1)
nrow(algae1)
3.7 编辑algae1并另存为algae2(任意修改某个点的值)
algae2<-edit(algae1)
3.8 将algae1和algae2,按行合并得到algae3,输出algae1、algae2 和algae3的样本行数
algae3<-rbind(algae1,algae2)
nrow(algae1)
nrow(algae2)
nrow(algae3)