数组 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 ...
随机推荐
- python函数返回值
2016-08-09 15:01:38 python函数返回值使用return语句,可以返回任意类型的数.如果return语句执行,它之后的所有语句都不再执行. def func(x,y): pri ...
- spring源码学习之:项目公共配置项解决方案
一:项目中有一些key,value的简单配置 org.apache.commons.configuration.DatabaseConfiguration可以轻松解决 二:配置项目的xml中bean ...
- 洛谷 P3225 [HNOI2012]矿场搭建
传送门 题目大意:建设几个出口,使得图上无论哪个点被破坏,都可以与出口联通. 题解:tarjian求割点 首先出口不能建在割点上,找出割点,图就被分成了几个联通块. 每个联通块,建出口.如果割点数为0 ...
- gulp 流处理
包含的内容: 穿插流 流合并 流队列 流筛选 1. 穿插流 // passthrough stream 把流传递给其他的 // use gulp.src(glob,{p ...
- Python基础-变量作用域
1.函数作用域介绍 函数作用域 Python中函数作用域分为4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局 ...
- 微信小程序,请求php后台返回json数据多出隐藏字符问题
这几天在做一个微信小程序注册登录页面的时候碰到一个问题,就是使用wx.request api的时候success中返回的JSON数据前面会多出空白字符,后面网上查了一下是说php bom头问题(详细介 ...
- 【转】Jmeter分布式部署文档
很多时候,我们测试时,如果进行大数据量的并发测试时,单个电脑的CPU和内存可能无法承受,这个时候,我们需要进行一个分布式的测试,比如10000个并发,使用三台电脑来进行并发,Jmeter提供了这种功能 ...
- java的错误代码。。。。
总结:从键盘输入一组数,输出其最大值,这段代码是错的,因为每次都错在这里,所以自己还是没有理解~~~~ import java.util.Scanner; //键盘输入一组数据,并输出最小值 //从键 ...
- Effective java笔记2--创建于销毁对象
一.创建对象的两种方式 1.提供公有的构造器. 2.提供一个返回类实例的静态方法. 二.使用静态方法创建对象 优势: 1.静态工厂方法的一个好处是,与构造函数不同,静态工厂方法具有名字.产生的客户端代 ...
- 表空间 -- tablespace
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间. Oracle数据库中至少存在一个表空间,即SYSTEM的表空间. ...