R语言入门第二集 实验一:R 语言数据结构、数据导入与数据处理





二、答案更新纠正

2.8 向量C的最大值及最大值对应的索引

答案:

C[which.max(C)]
CMaxIndex<-which.max(C)
CMaxIndex
  1. 应该为:
    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)
  1. 应该为:
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

  1. 应该为:
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)