R语言基本操作函数---变量的基本操作
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,y相比较小者,组成新的向量
pmax(x,y,...):x,y相比较大者,组成新的向量
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字符操作
str_c(..., sep = "", collapse = NULL):转化为字符后连接向量;seq=为分割界限(一个空格为默认);选择collapse=可以分 割"collapse"结果
str_sub(string, start = 1L, end = -1L) :提取字符向量的子字段;
同样可以赋值,使用str_sub(string, start = 1L, end = -1L) <- value 替换子字符串
str_split(x,split):在split的位置分割x,例如:
x<-str_split("An R matrix corresponds to the mathematical concept"," ");
length(x[1]); #注意:对象被存放在列表x的第一项中,可以用x[1]提取
str_to_lower(x):转化为lowercase
str_to_upper(x):转化为uppercase
x%in%table:table中匹配x元素位置组成的向量,返回值为逻辑值
str_match(string, pattern):pattern匹配字符,并返回对应的字符string
str_extract: 从字符串中提取匹配字符
str_extract(shopping_list, "\\d") # 提取数字 #提取匹配模式的第一个字符串
str_extract(shopping_list, "[a-z]+") #提取字母
str_detect(string, pattern) 匹配字符串的字符-- 检测函数,用于检测字符串中是否存在某种匹配模式
# 检查字符串向量,是否以a为开头 :str_detect(val, "^a")
nchar(x):字符的个数
R语言基本操作函数---变量的基本操作的更多相关文章
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
- 【R】R语言常用函数
R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...
- R语言table()函数
R语言table()函数比较有用,两个示例尤其是混淆矩阵这个案例比较有用: 例子一:统计频次 z<-c(1,2,2,4,2,7,1,1);z1<-table(z);summary(z1); ...
- R语言封装函数
R语言封装函数 原帖见豆瓣:https://www.douban.com/note/279077707/ 一个完整的R函数,需要包括函数名称,函数声明,函数参数以及函数体几部分. 1. 函数名称,即要 ...
- R语言学习笔记-变量的作用域
R语言是如何将变量值和变量绑定的 在r语言中,当前的 workspace就是global enviroment,当输入变量名时,首先会在global enviroment中搜索该变量,如有,则将它显示 ...
- R语言中函数调试
有时候会用R语言写一下简单的脚本处理函数,加入需要调试的话可以按照下面的步骤进行: fun <- function(x , y){ x + y x - y x * y x / y } debug ...
- R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal
在R语言进行数据分析时,经常需要找不同组间的相同和不同,那你应该掌握如下几个函数,让你事半功倍. 交集intersect两个向量的交集,集合可以是数字.字符串等 # 两个数值向量取交集intersec ...
- .net 调用R语言的函数(计算统计值pvalue 对应excel :ttest)
Pvalue 计算 项目设计pvalue计算,但是由于.net 没有类似的公式或者函数,最终决定使用.net 调用R语言 采用.net 调用r语言的公用函数 需要安装 r语言环境 https://mi ...
- R语言—使用函数sample进行抽样
在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法.那么今天介绍的第一个函数就是用于抽样的函数sample: > ...
随机推荐
- MVC中的数据注解和验证
数据注解和验证 用户输入验证在客户端浏览器中需要执行验证逻辑. 在客户端也需要执行. 注解是一种通用机制, 可以用来向框架注入元数据, 同时, 框架不只驱动元数据的验证, 还可以在生成显示和编辑模型的 ...
- 初始Python
一.Python简介 1.Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新 ...
- MWeb 1.7.1 版发布!支持导出为 RTF 和 Docx、发布到 Evernote 带样式、文档库备份和新网站主题等大量改进!
编辑器及发布服务改进 增加设置图片宽度和居左.居右.居中的语法. 如:![图片说明-w450](pic.jpg) 这样表示设置图片宽度为 450.其中 -w450 为设置语法,生成 HTML 时会自动 ...
- Eclipse开发快捷键技巧
1.alt+?或alt+/:自动补全代码或者提示代码 这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个手指轻松按下这2个键的时候,自动就补全System.out.println() ...
- FileSaver.js ////////////////////zzzzzzzzzzzzzz
FileSaver.js 实现浏览器端文件保存的 JavaScript 库 查看次数: 758 下载次数: 89 更新时间: 2015-06-05 发布时间: 2015-06-05 收藏 插件信息金币 ...
- js实现文件上传
js function UpladFile() { var fileObj = document.getElementById("filetes").files[0]; // 获取 ...
- 利用Servlet导出Excel
-----因为Excel可以打开HTML文件,因此可以利用页面的Form表单把页面中的table内容提交给Servlet,然后后台把提交上来的table内容转换成文件流的形式,并以下载的形式转给客户端 ...
- JSONObject put,accumulate,element的区别
public Object put (Object key, Object value) 将value映射到key下.如果此JSONObject对象之前存在一个value在这个key下,当前的valu ...
- JVM内存结构---《深入理解Java虚拟机》学习总结
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域的用途各不相同,同时也依据着各自的执行规则,独立的创建和销毁数据. 虚拟机内存的划分,如图所示: 线程之间 ...
- git 学习笔记
1.创建git仓库 git init 2.添加文件 git add readme.txt 3.修改文件 git add readme.txt 4.提交修改 git commit -m "提交 ...