r语言crossprod_R语言实战菜鸡笔记(二):创建数据集

# 《R语言实战》第二章 创建数据集# 数据结构:向量、矩阵、数组、数据框、列表# 向量# 存储数值型字符型或逻辑型数据的一维数组,不同类型不能混合在同一向量中vector_1 1, vector_2 "one", vector_3 # 逻辑型向量# 访问向量中的元素vector_1[3]vector_1[c(1, 3, 5)]vector_1[2:6]vector_1[-6]  # 去掉向量中的第6个元素vector_1[vector_1>0]  # 取向量中大于0的元素# 顺序生成向量seq():有几种使用方式如下vector_4 q(from=1,to=10)  vector_5 q(from=1,to=5,by=0.5)  vector_6 q(from=1,to=10,length.out = 5)  vector_7 q(along.with = vector_6)  vector_8 q(from = vector_6)  # rep():向量复制/重复/循环vector_9 1:vector_10 2:vector_11 1:vector_12 2:vector_13 1:# 矩阵# 二维数组,矩阵中元素类型相同.matrix_1 1:matrix_1cells    1,rnames   "R1", cnames   "C1", matrix_2 2, ncol=matrix_2matrix_3 2, ncol=matrix_3# 访问矩阵中的元素 矩阵下标的使用matrix_4 1:matrix_4[2,]matrix_4[,2]matrix_4[1,4]matrix_4[1,c(4,5)]# 矩阵运算lambda 2matrix_5 2, matrix_6 1, matrix_5matrix_6matrix_5+lambdamatrix_5+matrix_6matrix_5-matrix_6lambda*matrix_5t(matrix_5)  # matrix_5的转置matrix_5*matrix_6  # 矩阵中的各个元素相乘matrix_5/matrix_6  # 矩阵中的各个元素相除matrix_5%*%matrix_6  # 矩阵乘法solve(matrix_6)  # 矩阵求逆,若求解线性方程组Ax=b,其命令形式为solve(A,b)matrix_5%*%solve(matrix_6)  # 矩阵5乘矩阵6的逆## 计算向量内积crossprod(A,B)表示的是t(A)%*%B而外积tcrossprod(A,B)表示的是A%*%t(B),crossprod(x)表示x与x的内积crossprod(matrix_5,matrix_6)vector_14q(1,4)vector_15q(4,7)outer(vector_14,vector_15,FUN="*")# outer()是更为强大的外积运算函数## 克罗内克积,A是一个m×n的矩阵,B是一个p×q的矩阵,克罗内克积A×B则是一个mp×nq的分块矩阵kronecker(matrix_1,matrix_5)diag(vector_14)  # 生成对角阵diag(matrix_5)  # 矩阵取对角运算det(matrix_5)  # 计算矩阵的行列式# 将矩阵变为对称矩阵并计算对称矩阵的特征值和特征向量matrix_7 1:matrix_7## 将矩阵转置的下三角矩阵赋给矩阵的下三角矩阵/upper.tri()上三角阵matrix_7[lower.tri(matrix_7)] matrix_7matrix_8 1:matrix_8matrix_9 # 自己与自己的内积是对称矩阵matrix_9ev_1 # ev_1存放matrix_7的特征值和特征向量ev_1ev_1$values  # 是矩阵的特征值构成的向量ev_1$vectors  # 是矩阵的特征向量构成的矩阵ev_2 ev_2ev_2$valuesev_2$vectors# 数组# 多维数组,数组中元素类型相同dimnames_1 "A1", dimnames_2 "B1", dimnames_3 "C1", array_1 1:array_1  # 默认byrow=FALSEarray_1[1,2,3]  # 访问数组中的元素,数组下标使用# 数据框# 不同列可以包含不同类型数据patientID 1, age 25, diabetes "Type1", status "Poor", dataframe_1 # 字符串不作为属性数据dataframe_1 # 指定patientID为实例标志符dataframe_1str(dataframe_1)summary(dataframe_1)# 手动创建数据框dataframe_2 dataframe_2 # 选取数据框中元素dataframe_1[1:2]dataframe_1[c("diabetes", "status")]dataframe_1$age  # 用来选取给定数据框中的某个特定变量table(dataframe_1$diabetes, dataframe_1$status)  # 生成两个变量的列联表class(dataframe_1[1])  # 显示某个对象的类或类型class(dataframe_1$patientID)nrow(dataframe_1)ncol(dataframe_1)dim(dataframe_1)  # 显示某个对象的维度names(dataframe_1)  # 显示某对象中各成分名称rownames(dataframe_1)cbind(dataframe_1, dataframe_3)  # 按列合并对象rbind(dataframe_1[1:2], dataframe_3[1:2])  # 按行合并对象head(dataframe_1,2)  # 显示数据框的前*行tail(dataframe_1,2)  # 显示数据框的后*行# attach()将数据框添加到搜索路径# detach()将数据框从搜索路径中移除# with()赋值仅在此函数的括号内生效,花括号之间的语句都针对数据框执行attach(mtcars)summary(mpg)plot(mpg, disp)plot(mpg, wt)detach(mtcars)with(mtcars, {  summary_mpg# 仅在with()结构内生效  summary_disp<# 可在with()结构外生效  plot(mpg, disp)  plot(mpg, wt)})# 因子的使用patientID 1,age 25,diabetes "Type1",status "Poor",diabetes_factor # 将此向量存储为(1,2,1,1)并作为名义型变量对待status_factor # 将此向量存储为(3,2,1,3)并作为有序型变量对待,按字母顺序排序status_factor "Poor", dataframe_3 # 因子的使用如何影响数据分析的str(dataframe_3)  # 显示对象的结构 str(obj)可提供R中某个对象的信息summary(dataframe_3)  # 显示对象的统计概要sex1,sex_factor 1, sex_factor# 列表# 一些对象的有序集合,其中的对象可以是目前讲到的任何结构list_1 list_1# 访问列表中的元素list_1[[2]]  # 得到list_1中的matrix_1# 使用键盘输入数据:R内置文本编辑器和在代码中嵌入数据dataframe_4 0), gender=character(# 类似age=numeric(0)的数据将创建一个指定模式但不含实际数据的变量dataframe_4 # 编辑的结果要赋给一个对象fix(dataframe_4)  # 上述便捷写法dataframe_5_txt "age gender weight25 m 16630 f 11518 f 120"  # 在代码中嵌入数据dataframe_5 # read.table()函数处理字符串并返回数据框dataframe_5# 从带分隔符的文本文件导入数据dataframe_6 "variables20.csv", header = TRUE, row.names = ## 选项na.strings=可选的用于表示缺失值的字符向量 stringsAsFactors默认为T默认把字符变量转化为因子dataframe_6str(dataframe_6)# 选择导入文件的方法install.packages("gdata")library(gdata)choose_data # 导入Excel数据:将Excel转为.csv格式文件后导入# 读取压缩文件:gzfile()bzfile()xzfile()unz()# 函数url()访问网络上的文件

b1b8048565cd05375cc9b152c1be80bb.png

关注私信我获取相关图书电子版~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值