1.变量变换

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

2.变量信息

#检验变量的类型;使用如下命令得到全部列表,methods(is)
is.na(x)
is.null(x)
is.array(x)
is.data.frame(x)
is.numeric(x)
is.complex(x)
is.character (x)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)#:字符的个数

  

转载于:https://www.cnblogs.com/Martin-9/p/5310825.html

R语言基本操作函数(1)变量的基本操作相关推荐

  1. R语言数据处理——基础篇 data.frame基本操作

    文章目录 R语言数据处理--基础篇 data.frame基本操作 data.frame的创建 数据访问.条件筛选与删除 数据访问 数据筛选 删除 使用`gather()`进行data.frame数据格 ...

  2. R语言ggplot2可视化分组变量下的数据分布(线条、色彩配置)、WVPlots包的ShadowHist函数比较分组下的数据直方图、ggplot2分面图facet_wrap可视化分组变量下的数据分布

    R语言ggplot2可视化分组变量下的数据分布(线条.色彩配置).WVPlots包的ShadowHist函数比较分组下的数据直方图.ggplot2分面图facet_wrap可视化分组变量下的数据分布 ...

  3. R语言droplevels函数删除因子变量(factor)没有用到的级别(level)实战

    R语言droplevels函数删除因子变量(factor)没有用到的级别(level)实战 目录 R语言droplevels函数删除因子变量(factor)没有用到的级别(level)实战 #基本语法 ...

  4. R语言attach函数、detach函数(全局注册或者全局解除)实战

    R语言attach函数.detach函数(全局注册或者全局解除)实战 目录 R语言attach函数.detach函数(全局注册或者全局解除)实战 #基本语法 # 仿真数据 # 如果没有attach就直 ...

  5. R语言编程 第一讲 变量与赋值

    R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...

  6. R语言log函数实战(log、log2、log10)

    R语言log函数实战(log.log2.log10) 目录 R语言log函数实战(log.log2.log10) #基本语法 #log函数应用于数值变量

  7. R语言str_trim函数去除字符串中头部和尾部的空格

    R语言str_trim函数去除字符串中头部和尾部的空格 目录 R语言str_trim函数去除字符串中头部和尾部的空格 #导入包和库 #仿

  8. R语言sqrt函数为数值开平方根实战

    R语言sqrt函数为数值开平方根实战 目录 R语言sqrt函数为数值开平方根实战 #基本语法 #sqrt函数开平方根

  9. R语言数学函数:abs绝对值、sqrt平方根、ceiling向上近似整数、floor向下近似整数、trunc去除小数部分、round近似到指定小数位、signif近似到有效数字、三角函数、指数、对数

    R语言数学函数:abs绝对值.sqrt平方根.ceiling向上近似整数.floor向下近似整数.trunc去除小数部分.round近似到指定小数位.signif近似到有效数字.三角函数.指数.对数 ...

最新文章

  1. 防抖函数Debounce实现
  2. 微生物组入门必读+宏基因组实操课程=新老司机赶快上车
  3. JSPDF运用实例(解决图片跨域问题)
  4. Python安装PyOpenGL
  5. 小米登录协议分析_小米温湿度传感器协议分析
  6. Linux Socket通信 C/S模型
  7. SSD( Single Shot MultiBox Detector)关键源码解析
  8. linux bash 历史记录,Linux Bash History 命令历史记录
  9. java基础----变量与常量+作用域
  10. 0基础学python有多难-0基础纯小白学Python,请注意这2个坑
  11. PowerPhotos:Mac照片库管理软件
  12. bt种子增加服务器,bt发布-BT种子怎么发布?服务器地址、发布者网址应怎么填写? 爱问知识人...
  13. 开源的魔兽世界参考架构——mangos--网络游戏引擎BigWorld 服务器介绍
  14. Linux 优秀软件资源大全中文版
  15. 最新微信养号、使用、解封必看的注意事项
  16. Ubuntu 22.04 下安装uhd和gnuradio的快捷方法
  17. 解决XAMPP中无法勾选/无服务/modules无反应/Service灰框/无✓X/提供虚拟服务器
  18. Git(5) SourceTree安装使用
  19. 移动浏览器内核及连接数
  20. std::vector删除元素迭代器以及内存的变化

热门文章

  1. Ubuntu Server下配置UTF-8中文/英文环境
  2. Google在中国打败百度的方法其实很简单.只要需改变5点.
  3. angular 引入编辑器以及控制器的学习和理解。。。
  4. Mysql数据库 sql 语句调优
  5. Linux编程中的坑——C++中exit和return的区别
  6. 原生js--兼容获取窗口滚动条位置和窗口大小的方法
  7. hdu 2459 (后缀数组+RMQ)
  8. Callable和Future
  9. File文件操作(二):内存映射
  10. 算法----打印二叉树最右侧的节点 Java版