1.变量变换
        as.array(x),as.data.frame(x),as.numeric(x),as.logical(x),as.complex(x),as.character(x),...转换变量类型;使用如下命令可得到全部列表,methods(as)
        factor():将一个向量转化为一个因子

2.变量信息
        is.na(x),is.null(x),is.array(x),is.data.frame(x),is.numeric(x),is.complex(x),is.character (x),...检验变量的类型;使用如下命令得到全部列表,methods(is)
        length(x):x中元素的个数
        dim(x):查看变量的维数;重新设置的维数,例如dim(x)=c(3,2)
        dimnames(x):重新设置对象的名称
        nrow(x):行的个数
        ncol(x):列的个数
        class(x):得到或设置x的类;class(x)<-c(3,2)
        unclass(x):删除x的类
        attr(x,which):得到或设置x的属性which
        attributes(obj):得到或设置obj的属性列表
        fix,edit:对数据框数据进行表格形式的编辑
3.数据选取和操作
        which.max(x):返回x中最大元素的指标
        which.min(x):返回x中最小元素的指标
        rev(x):翻转x中所有的元素
        sort(x):升序排列x中的元素;降序排列使用:rev(sort(x))
        cut(x,breaks):将x分割成为几段(或因子);breaks为段数或分割点向量
        match(x,y):返回一个和x长度相同且和y中元素相等的向量不等则返回NA
        which(x==a):如果比较操作为真(TRUE),返回向量x的指针
        choose(n,k):组合数的计算
        na.omit(x):去除缺失值(NA)(去除相关行如果x为矩阵或数据框)
        na.fail(x):返回错误信息,如果x包含至少一个NA
        unique(x):如果x为向量或数据框,返回唯一值
        table(x):返回一个由x不同值个数组成的表格(通常用于整数或因子),即频数表
        subset(x,...):根据条件(...选取x中元素,如x$V1<10);如果x为数据框,选项select使用负号给出保留 或去除的变量 subset(x, subset, select, drop = FALSE, ...)
        sample(x,size):不放回的随即在向量x中抽取size个元素,选项replace=TRUE允许放回抽取
        prop.table(x,margin=):根据margin使用分数表示表格,wumargin时,所有元素和为1
* R数据的创建与索引
** 向量的操作
*** 向量的创建
**** c(...)
为concatenate的缩写;
常见的将一系列参数转化为向量的函数,通过recursive=TRUE降序排列列表并组合所有的元素为向量
*** from:to产生一个序列
":"有较高的优先级;1:4+1得到"2,3,4,5"
*** seq() 产生一个向量序列
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)
        其中length.out可简写为len。
*** rep() 重复一个对象
        rep(x,times):x是要重复的对象(例如向量c(1,2,3)),times为对象中每个元素重复的次数(如times=c(9,7,3)就是将x向量的1重复9次,2重复7次,3重复3次)。
        除了上述主要的用法之外,还有一种特殊的用法:rep(x,times)重复x times次;使用each=来重复x元素each次;rep(c(1,2,3),2)得到1 2 3 1 2 3;rep(c(1,2,3),each=2)得到1 1 2 2 3 3。
*** 利用向量的索引实现定义分段函数
        利用改变部分元素值的技术与逻辑值下标结合,可以定义向量的分段函数,例如,要定义
         
可以用如下的语句去实现:
> x = c(-2.3,4,-5,7);
> y = numeric(length(x));
> y[x<0] = 1 - x[x<0];
> y[x>0] = 1 - x[x>0];
> y
[1] 3.3 -3.0 6.0 -6.0
4.1.数组(包含矩阵、向量)创建
c(...)
常见的将一系列参数转化为向量的函数,通过recursive=TRUE降序排列列表并组合所有的元素为向量
from:to产生一个序列
":"有较高的优先级;1:4+1得到"2,3,4,5"
seq() 产生一个向量序列
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)
        其中length.out可简写为len。
rep() 重复一个对象
        rep(x,times):x是要重复的对象(例如向量c(1,2,3)),times为对象中每个元素重复的次数(如times=c(9,7,3)就是将x向量的1重复9次,2重复7次,3重复3次)。
        除了上述主要的用法之外,还有一种特殊的用法:rep(x,times)重复x times次;使用each=来重复x元素each次;rep(c(1,2,3),2)得到1 2 3 1 2 3;rep(c(1,2,3),each=2)得到1 1 2 2 3 3。
matrix(...)
创立矩阵 matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
array(x,dim=...)
产生由x组成的数组;使用类似dim=c(3,4,2)指定维数;如果x长度不够,则x自动循环
data.frame(...)
创建数据框,变量可能被命名或未被命名
data.frame(v=1:4,ch=c("a","b","c","d"),n=10);
相对短的向量会被填充到最大向量长度。
注意数据框中各个属性的元素个数必须相同
list(...)
创建一个由变量组成的列表,变量可能被命名;
list(a=c(1,2),b="hi",c=3i)
factor(x,levels=) 把向量x编码称为因子
factor(x = character(), levels, labels = levels,exclude = NA, ordered = is.ordered(x))
gl() 产生因子变量
gl(n,k,lenth=n*k,labels=)
通过指定水平方式产生水平因子;k为水平的个数,n为重复的次数
rbind() cbind()
        rbind(...)以行的形式组合矩阵,数据框,或其它
        cbind(...)以列的方式组合,其他同rbind()
数据切割和分离
        向量指标
                x[n]:第n个元素
                x[-n]:除了第n个元素的x
                x[1:n]:前n个元素
                x[-(1:n)]:第n+1至最后的元素
                x[c(1,4,2)]:指定元素
                x["name"]:名为"name"的元素
                x[x>3]:所有大于3的元素
                x[x>3 & x<5]:区间(3,5)的元素
                x[x%in%c("a","and","the")]:给定组中的元素
        列表指标
                x[n]:列表显示元素n
                x[n]:列表的第n个元素
                x["name"]:名为"name"的元素
                x$name :同上
        矩阵指标
                x[i,j]:下表为(i,j)的元素
                x[i,]:第i行
                x[,j]:第j列
                x[,c(1,3)]:第1和3列
                x["name",]:名为"name"的行
                x$name :同上
        数据框指标
                x["name"]:列明为"name"的列
                x$name :同上
4.2.R数学函数
4.2.1.泛用函数apply:
        描述:让不同的函数作用数组array不同的边。
        用法:apply(X, MARGIN, FUN, ...)
        参数描述:
                X为一数组array,当然包括矩阵。
                MARGIN:为一向量,它指定函数要作用的下标。例如对一个矩阵来说,1代表行,2代表列,而c(1,2)代表行和列。
                FUN作用于数组array上的函数。此函数可以是自己编写的。
 
        注意:
                当X时一个data.frame时,而不是array时,函数apply就会强制性的通过as.matrix或as.array将其转化为maxtrix或array。
        例子:
                ## Compute row and column sums for a matrix:
                x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
                col.sums <- apply(x, 2, sum)
                row.sums <- apply(x, 1, sum)
4.2.2.基本符号:
        + :加
        - :减
        * :乘
        / :除
        ^ :幂
4.2.3.三角函数与其他基本数学函数
        sin,
        cos,
        tan,
        asin,
        atan,
        atan2,
        log,
        log10,
        exp,
max(x):
        当x为一向量时,返回x中最大的元素。
        当x为矩阵时,返回矩阵中所有元素的最大值。当要返回矩阵x每行或每列的最大值时,可以使用apply函数(apply(X, MARGIN, FUN, ...)),其中MARGIN表示要作用的方式,1代表行,2代表列,c(1,2)代表行和列;例如apply(data,MARGIN=1,max)
        当x为data.frame时,1仍然代表行,2仍然代表列。
        当x为数组array时,1仍然代表行,2仍然代表列,其它更高维数用相应的编号数字来表示,如3就可以代表array的页。
        其它详细情况参考apply函数
min(x):返回x中最小的元素,同max
rev(x) 翻转x中的所有元素
sort(x) 升序排列x中的元素;降序排列使用rev(sort(x)),要得到排列的小标用order()
choose(n,k) 组合数计算
which() 返回满足条件的下表
sample(x,size) 不放回的随机在向量x中抽取size个元素选项,replace+TRUE允许放回抽样
rank():计算向量的秩
range(x):返回c(min(x),max(x))
sum(x):x中各元素的加和
diff(x):向量x的差分
prod(x):x中元素的连乘积
mean(x):x的均值
median(x):x的中位数
quantile(x,probs=):满足给定概率的样本分位数(默认为0,0.25,0.75,1)
weight.mean(x,w):加权平均,w即为weight,即权值。
rank(x):x中元素的秩
var(x):向量x的样本方差;如果x是矩阵或数据框,协方差矩阵将被计算
cor(x):如果x是矩阵或数据框,相关系数矩阵将被计算
sd(x):x的标准差;sd(x)=sqrt(var(x))
var(x,y) or cov(x,y):x和y间的协方差;如果x,y为矩阵或数据框,返回x和y各列的协方差
cor(x,y):x和y的线性相关系数;或者相关矩阵,如果x和y为矩阵或者数据框
round(x,n):x的约数,精确到n位
log(x,base):计算x以base为基的对数,默认基为exp(1)
scale(x):如果x是一个矩阵,则中心化和标准化数据;若只标准化数据,则使用选项center=FALSE,若只 中心化使用scale=FALSE(默认center=TRUE,
        scale=TRUE)
pmin(x,y,...):x[i],y[i]相比较小者,组成新的向量
pmax(x,y,...):x[i],y[i]相比较大者,组成新的向量
Re(x):复数的实部
Im(x):复数的虚部
abs(x):绝对值
Arg(x):复数角度(in radians)
Conj(x):共轭复数
fft(x):数组x的快速傅里叶变换
mvfft(x):矩阵x的每一列的傅里叶变换
factorial():计算n!
cumsum():cumulative sums
cumprod():cumulative products
D(expression(exp(x^2)),"x") :求导
integrate(function(x) x^2,0,1):积分
注意:大多数数学函数使用逻辑参数na.rm=FALSE来指定是否移除缺失值(NA)
4.3.R字符操作
paste(...):转化为字符后连接向量;seq=为分割界限(一个空格为默认);选择collapse=可以分 割"collapse"结果
substr(x,start,stop):提取字符向量的子字段;同样可以赋值,使用substr(x,start,stop)<-value
strsplit(x,split):在split的位置分割x,例如:
        x<-strsplit("An R matrix corresponds to the mathematical concept"," ");
length(x[1]); #注意:对象被存放在列表x的第一项中,可以用x[1]提取
grep(pattern,x):搜索x中满足pattern条件;参见?regex
gsub(pattern,replacement,x):替换满足正则表达式的字段,sub()类似,但只替换第一个出现的字段
tolower(x):转化为lowercase
toupper(x):转化为uppercase
match(x,table):table中匹配x元素位置组成的向量
x%in%table:table中匹配x元素位置组成的向量,返回值为逻辑值
pmatch(x,table):table中部分匹配x元素
nchar(x):字符的个数

R语言基本操作函数(1)变量的基本操作的更多相关文章

  1. 【R】R语言常用函数

    R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...

  2. R语言table()函数

    R语言table()函数比较有用,两个示例尤其是混淆矩阵这个案例比较有用: 例子一:统计频次 z<-c(1,2,2,4,2,7,1,1);z1<-table(z);summary(z1); ...

  3. R语言封装函数

    R语言封装函数 原帖见豆瓣:https://www.douban.com/note/279077707/ 一个完整的R函数,需要包括函数名称,函数声明,函数参数以及函数体几部分. 1. 函数名称,即要 ...

  4. R语言入门:使用RStudio的基本操作

    R语言在人工智能,统计学,机器学习,量化投资,以及生物信息学方面有着十分广泛的运用.也是我大学的必修课,因此这里梳理一些有关R语言的知识点,做做记录. 首先我们需要知道R语言的工作区域,R语言默认的工 ...

  5. R语言中函数调试

    有时候会用R语言写一下简单的脚本处理函数,加入需要调试的话可以按照下面的步骤进行: fun <- function(x , y){ x + y x - y x * y x / y } debug ...

  6. R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal

    在R语言进行数据分析时,经常需要找不同组间的相同和不同,那你应该掌握如下几个函数,让你事半功倍. 交集intersect两个向量的交集,集合可以是数字.字符串等 # 两个数值向量取交集intersec ...

  7. .net 调用R语言的函数(计算统计值pvalue 对应excel :ttest)

    Pvalue 计算 项目设计pvalue计算,但是由于.net 没有类似的公式或者函数,最终决定使用.net 调用R语言 采用.net 调用r语言的公用函数 需要安装 r语言环境 https://mi ...

  8. R语言—使用函数sample进行抽样

    在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法.那么今天介绍的第一个函数就是用于抽样的函数sample:   > ...

  9. R语言plot函数参数合集

    最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅. plot(x, y = NULL, type = "p", xlim = N ...

随机推荐

  1. Android基础知识之Manifest文件中的用户权限元素

    原文:http://android.eoe.cn/topic/android_sdk 分任务原文链接一:http://developer.android.com/guide/topics/manife ...

  2. eclipse 创建Maven 架构的dynamic web project 问题解决汇总

    Eclipse创建Maven结构的web项目的时候选择Artifact Id为maven-artchetype-webapp,点击finish之后,一般会遇到如下问题 1. The superclas ...

  3. Android 架构师技能图谱(转载)

    架构与设计 设计模式 重构 技术选型 特性 可用性 性能 包大小 方法数 文档 技术支持 UI架构模式 MVC MVP MVVM 研发工具 集成开发环境 Android Studio Sublime ...

  4. 部署到Google App Engine时中途退出后引起的问题

    如果部署GAE时正在upload files时退出,下次部署时会报错 Another transaction by user is already in progress for this app a ...

  5. 腾讯云服务器 - 配置JDK环境以及Tomcat+nginx服务器

    安装完ngxin以及fastdfs后,那么jdk和tomcat是肯定要装的,本篇很简单,实在没啥好说的,都是基础,略微带一下,如果是大牛路过可以看看吐槽一下 云服务器上初识环境如果没有选择附带其他软件 ...

  6. 【Unity】9.2 如何添加粒子组件

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 粒子系统是作为组件附加到游戏对象上的,有两种添加办法. 二.方式1--添加已制作好的预制体 第1种方式是直接添加已经制作 ...

  7. nginx 屏蔽恶意请求

    https://www.xlongwei.com/detail/nginx-%E5%B1%8F%E8%94%BD%E6%81%B6%E6%84%8F%E8%AF%B7%E6%B1%82 nginx可以 ...

  8. c# 除掉前三个字符,剩下的4个字符全为数字方为特殊车辆

    string plate="粤BN1223"; if (plate.Contains("粤BN")) { //除掉前三个字符,剩下的4个字符全为数字方为特殊车辆 ...

  9. c++11实现c++14的optional

    c++14中将包含一个std::optional类,它的功能和用法和boost的optional类似.optional<T>内部存储空间可能存储了T类型的值也可能没有存储T类型的值,只有当 ...

  10. Ctex中WinEdt经常弹出注册小窗口 解决办法

    使用WinEdt 7避免跳出“注册对话框” 在options菜单下点options…,在advanced configuration  =>  Event Handlers  下点Exit, 在 ...