数组 array 矩阵 list 数据框 dataframe
转自 : http://blog.csdn.net/u011253874/article/details/43115447
- <span style="font-size:14px;">#R语言备忘录三#
- #数组array和矩阵matrix、列表list、数据框dataframe
- #数组
- #数组的重要属性就是dim,维数
- #得到4*5的矩阵
- z <- 1:12
- dim(z) <- c(3,4)
- z
- #构建数组
- x <- array(1:20, dim = c(4,5))
- #三维
- y <- array(1:18, dim = c(2,3,3))
- #数组下标
- y[1, 2, 3]
- #数组的广义转置,维度发生变化,把2维变成1维,把3维变成2维,把1维变成3维,即D[i,j,k] = C[j,k,i]
- C <- array(1:24, dim = c(2,3,4))
- D <- aperm(A, c(2,3,1))
- #apply用于数组固定某一维度不变,进行计算
- apply(A, 1, sum)
- #矩阵
- #产生矩阵
- A <- matrix(1:15, nrow=3, ncol=5, byrow=TRUE)
- B <- matrix(3:17, nrow=5, ncol=3, byrow=TRUE)
- #求方阵行列式的值
- det(matrix(1:4, ncol = 2))
- #内积
- #矩阵的内积
- A %*% B
- #也可以使用crossprod函数
- crossprod(A, B)
- crossprod(A)
- #向量的外积,也叫叉积
- x <- 1:5
- y <- 2*1:5
- x %o% y
- #也可以使用tcrossprod函数、outer
- outer(x, y)
- tcrossprod(x)
- #产生对角阵
- #如果变量是一个向量,则是以向量为对角线元素的对角阵
- v <- c(1, 3, 5)
- diag(v)
- #如果变量是一个矩阵,则是取矩阵对角线元素作为对角阵对角线元素
- diag(A)
- #解线性方程Ax=b,
- b <- matrix(c(1,1,1), nrow = 3, byrow = TRUE)
- B <- matrix(1:9, nrow = 3, byrow = TRUE)
- solve(B,b)
- #求矩阵的逆
- solve(B)
- #ev$values是特征根,ev$vectors是特征向量组成的矩阵
- SM <- crossprod(A, A)
- ev <- eigen(SM)
- #奇异解,svd$d返回的是矩阵A的奇异值,svd$u则是正交阵U,svd$v对应的是正交阵V, A = UDVT
- svdA <- svd(A)
- #把矩阵拉成向量
- as.vector(A)
- #数组或矩阵的维的名字
- X <- matrix(1:6, ncol = 2,
- dimnames = list(c("one", "two", "three"), c("First", "Second")),
- byrow = T)
- #亦或是
- dimnames(A) <- list(c("one", "two", "three"), c("First", "Second"))
- colnames(A) <- c("First", "Second")
- rownames(A) <- c("one", "two", "three")
- #列表
- #构建列表
- Lst <- list(name="Fred", wife="Mary", no.children=3, child.ages=c(4,7,9))
- #列表元素,列表名[[下标]]
- Lst[[2]]
- Lst[[4]][2]
- #也可以使用名字代替下标
- Lst[["name"]]
- Lst$name
- #修改列表
- Lst$name <- c("John", "Tom")
- #删除列表某项
- Lst$name <- NULL
- #连接几个列表
- list.ABC <- c(list.A, list.B, list.C)
- #数据框
- #data.frame,用法和list相同,如果list里的成分满足数据框,也可以使用as.data.frame转换
- df<-data.frame(
- Name=c("Alice", "Becka", "James", "Jeffrey", "John"), Sex=c("F", "F", "M", "M", "M"),
- Age=c(13, 13, 12, 13, 12),
- Height=c(56.5, 65.3, 57.3, 62.5, 59.0)
- Weight=c(84.0, 98.0, 83.0, 84.0, 99.5)
- )
- df
- #矩阵可以通过data.frame(X)转换
- #取数据框的一部分
- df[1:2, 3:5]
- df[["Height"]]
- df$Weight
- #命名
- names(df)
- rownames(df)
- #attch()函数将数据框中的变量调入内存中,方便调用当中的数据
- attach(df)
- #取消连接
- detach(df)
- #调用edit进行编辑数据
- edit(df)
- #因子factor
- sex <- c("M","M", "F","F")
- sexf <- factor(sex)
- #因子水平
- sex_level <- levels(sexf)
- #用table统计各类数据的频数
- sex_tab <- table(sexf)
- #用gl()产生因子
- #gl(n, k, length = n * k, labels = 1:n, ordered = FALSE)
- </span>
、、、、、、、、、、、、、、、、、、、、、、、、、、、
- #R语言学习备忘录一#
- #向量运算#
- x <- c(1,2,3,6)
- #不小于x的最小整数
- ceiling(x)
- #不大于x的最大整数
- floor(x)
- #向0方向截取的x中的整数
- trunc(x)
- #将x舍入为指定位的小数
- round(x,digits=2)
- #将x舍入指定的有效数字位数
- signif(x,digits=2)
- #三角函数
- cos(x)
- sin(x)
- tan(x)
- acos(x)
- asin(x)
- #分位数,如求25%及50%分位数
- quantile(x,c(.25,.5))
- #求值域
- range(x)
- #求乘积函数
- prod(x)
- #滞后差分
- diff(x)
- #求最大值和最小值对应的位置
- which.min(x)
- which.max(x)
- #数据标准化
- x<-c(123,232,212,232,120,273)
- mydata<-scale(x)
- mydata
- #正则表达式匹配
- str<-c("a","A","B","c")
- grep("A",str,fixed=TRUE)
- #字符
- #分割符strsplit
- strsplit("abcde","")
- #连接字符paste
- paste("x",1:10,sep="")
- paste("x",1:5,sep="T")
- paste("Today is ",date())
- #大写转换toupper
- toupper("abcEF")
- #小写转换tolower
- tolower("ABC")
- #计算字符数量 nchar
- x<-c("ab","deew","James")
- nchar(x)
- nchar(x[2])
- #提取或替换一个数值,和Excel mid函数差不多 substr
- x<-"abcdefg"
- substr(x,2,5) #2到5个元素
- substr(x,2,5)<-"1111111"
- x
- #注意两种等差数列的差别
- 1:n-1
- 1:(n-1)
- #重复函数rep
- y<-rep(1:5,2)
- y
- #等间隔函数
- seq(-5, 5, by=.2)
- seq(length=51, from=-5, by=.2)
- #上下两种方式效果一样
- #求行均值
- apply(mydata,1,mean)
- #求列均值
- apply(mydata,2,mean)
- #逻辑变量
- #判断一个逻辑向量是否都为真的函数是all
- all(c(1,2,3,4,5,6)>3)
- #判断一个逻辑向量是否有为真的函数any
- any(c(1,2,3,4,5,6)>3)
- #缺失数据
- #NA表示数据缺省或缺失
- z <- c(1:3, NA)
- z
- a <- is.na(z)
- #修改缺失数据
- z[is.na(z)] <- 0
- #is.nan()判断数据是否精确,inf也属于非精确
- x <- c(0/1, 0/0, 1/0, NA)
- is.nan(x)
- is.finite(x)
- is.infinite(x)
- is.na(x)
- #复数向量
- #复数z=x+isin(x)
- x <- seq(-pi, pi, by = pi/10)
- y <- sin(x)
- z <- complex(re = x, im = y)
- plot(z)
- lins(z)
- #向量的下标运算
- x <- c(1,4,7)
- x[c(2,3)]
- #修改元素值
- x[c(1,3)] <- c(22, 33)
- #逻辑向量
- x <- c(1,4,7)
- x < 5
- x[x<5]
- #分段函数
- y <- numeric(length(x))
- y[x<0] <- 1-x[x<0]
- y[x>=0] <- 1-x[x>=0]
- #即y=1-x,x<0; y=1+x,x>=0
- #下标的负整数运算表示的是删除
- v <- 10:20
- v[-(1:5)]
- #取字符串为下标
- ages <- c(Li=33, Zhang=29, Liu=18)
- ages["Zhang"]
- #给向量赋予名字
- fruit <- x(5, 10, 1, 29)
- names(fruit) <- c("orange", "banana", "apple", "peach")
数组 array 矩阵 list 数据框 dataframe的更多相关文章
- R语言笔记1--向量、数组、矩阵、数据框、列表
注释:R语言是区分大小写的 1.向量 R语言中可以将各种向量赋值为一个变量,这种赋值操作符就是等号“=”,也可以使用“<-”. 1)产生向量 (1)函数c() 例如:x1=c(2,4,6,8,0 ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- 《学习R》笔记:科学计算器、检查变量和工作区、向量、矩阵和数组、列表和数据框
一.第二章 科学计算器 要检查两个数字是否一样,要使用 all.equal() ,不要使用 == ,== 符号仅用于比较两个整型数是否存在相同 . > all.equal(sqrt(2)^2,2 ...
- Spark2 加载保存文件,数据文件转换成数据框dataframe
hadoop fs -put /home/wangxiao/data/ml/Affairs.csv /datafile/wangxiao/ hadoop fs -ls -R /datafiledrwx ...
- pandas中数据框DataFrame获取每一列最大值或最小值
1.python中数据框求每列的最大值和最小值 df.min() df.max()
- R读取一个数据框 Dataframe,删去其中的某一列
可以参考:http://blog.sina.com.cn/s/blog_80572f5d0101anxw.html
- C语言 - cJSON解析特定格式 含有数组array类型的数据
在ESP32中使用了cJSON库,发现很好用.最近服务器端的JSON格式越来越多样,还是有些注意点,需要做下笔记记录下来. cJSON *MAC_arry = cJSON_GetObjectItem( ...
- python数据处理工具 -- pandas(序列与数据框的构造)
Pandas模块的核心操作对象就是对序列(Series)和数据框(Dataframe).序列可以理解为数据集中的一个字段,数据框是值包含至少两个字段(或序列) 的数据集. 构造序列 1.通过同质的列表 ...
- R语言学习4:函数,流程控制,数据框重塑
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
随机推荐
- numpy 矩阵相关函数
我们 知道,矩阵在python里面用的不少,所以记载下关于矩阵的操作 numpy.zeros():可以用来构造全零矩阵 >>> zeros(3) array([ 0., 0., ...
- EL and JSTL(Jsp Standard Tag Libary)(转)
一.什么是 EL 语言. 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语音. 二.EL 语言的作用. 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAS ...
- jQuery的ajax跨域实现
今天有人问我跨域ajax请求是否可以发送,之前没接触过此类问题,没答上,后来查了下,以下备忘. 我在本地建了三个站点,并设置了host文件模拟跨子域和跨全域 coolkissbh.com blog.c ...
- Source Insight中文字体设置
Source Insight是一个面向项目开发的程序编辑器和代码阅读工具,它拥有内置的对C/C++, C#和Java等程序的分析,分析你的源代 码并在你工作的同时动态维护它自己的符号数据库,并自动为你 ...
- php end()
end()的用法
- mysql实战优化之八:关联查询优化
1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: 由于其返回的结果为被连接的两个数据表的乘积,因此当有WHE ...
- netty中的UDP
UDP 提供了向多个接收者发送消息的额外传输模式: 多播——传输到一个预定义的主机组: 广播——传输到网络(或者子网)上的所有主机. 本示例应用程序将通过发送能够被同一个网络中的所有主机所接收的消息来 ...
- 密码生成工具Cupp
Cupp可根据已知信息生成相应的字典,用来爆破很有帮助 首先先安装一下cupp 命令:apt-get install cupp 参数说明: -v查看cupp版本号 -h 查看参数列表 -l 从gith ...
- 使用CallableStatement接口调用存储过程
直接上下代码: package com.learn.jdbc.chap07; import java.sql.CallableStatement; import java.sql.Connection ...
- Delphi 原生ADO(二)
我发现很多朋友在开发数据库时都使用 Delphi 自带的 ADO 组 件 或 Diamond ADO,其实在 Delphi 中使用原生 ADO 接口也是十分方便和有效的.我使用原生 ADO 开发项目已 ...