首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
R语言的向量化编程思维
】的更多相关文章
R语言的向量化编程思维
1.计算缺失值比例 perNA<- mean(is.na(Data1)) 2.按值替换 #which返回值是符合条件的下标 NAIDX<- which(Data2<=3 | Data2>=8)Data2[NAIDX]<- NA 3.找到连续不变且长度超过50的数值片段的起.始行号和片段的总长度. Judger1<-x$v[2:(nrow(x)-1)]!=x$v[1:(nrow(x)-2)]Judger2<-x$v[2:(nrow(x)-1)] ==x$v[3:(n…
R语言函数化编程笔记2
R语言函数化编程笔记2 我学过很多的编程语言,可以我写的代码很啰嗦,一定是我太懒了.或许是基础不牢地动山摇 1.为什么要学函数 函数可以简化编程语言,减少重复代码或者说面向对象的作用 2.函数 2.1创建函数 例如创建一个简单的求和函数 su<-function(x,y){ x+y } 2.2 调用函数 su(2,3) ##5 简单的调用函数 函数名(参数赋值) 2.3 泛化函数 就是使编写的一个函数更加通用 可以处理各种运算 calc<-function(x,y,type){ if (typ…
R语言函数化编程笔记1
R语言函数化编程笔记1 notes:有一个不错的网站叫做stack overflow,有问题可以从上面找或者搜索答案,会有大佬相助. 在github上面可以找到很多R的扩展包,如果自己额修改被接受,那么就会成为该包的贡献者.. R的编辑器 一般会在Rstudio中编写一个脚本文件来执行多行代码,可以编写R脚本,Rmarkdown文档,网页等,或者C++源代码 常用快捷键 ctrl+enter组合键运行选中命令 ctrl+shift+S组合键执行当前文档,也就是依次执行当前文档中的所有表达式 Ta…
关于R语言的一些编程经验
一个晚上写出一个能用的程序…… 来说说遇见的问题吧 zqw<-read.table(file = "c:/data/zqw.txt") zqw<-data.frame(zqw,^(-zqw[,])) write.table(zqw,file = "c:/data/tianxia.txt",quote = FALSE,row.names = FALSE, col.names = FALSE,sep ="\t") 先说说输出的格式控制问题…
R语言入门二
一.R语言应知常用函数 1.getwd() 函数:获取工作目录(同eclipse设置workspace类似),直接在R软件中使用,如下图: 2.setwd(dir=”工作目录”) 函数:设置R软件RStudio的工作目录,如下图(注意目录写法): 3.list.files()函数(同dir()函数):查看R软件当前工作目录下的文件,如下图: 4.一般赋值符号:<- 或-> ,如x<-3 或3->x,表示x等于3 5.ls()函数:查看工作空间中的所有变量:ls.str()函数:查看…
R语言的神奇之基于向量
对于大多数需要来说,当我们需要计算两个向量相加时,我们需要分别对这两个向量的元素进行遍历,所以写起来非常的麻烦.下面看看R语言是如何实现的. 首先,将1:5赋予一个名为x的向量 > X<- : > X [] 然后,我们用这个向量加上另一个向量 例如:让x加上6:10,可以如下执行: > x + : [] 就是这么简单,这是因为R语言是向量化的语言,它可以在一个步骤中同时执行多个操作,这是其他非向量化编程语言所不具备的.…
【转】R语言知识体系概览
摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开始学习R语言.总以为有了其他语言的编程背景,学习R语言就是一件很简单的事情,一味地追求速度,但不求甚解,有些同学说2周就能掌握R语言,但掌握的仅仅是R语言的语法,其实这只能算是入门. R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读…
R语言并行计算中的内存控制
R语言使用向量化计算,因此非常容易在集群上进行并行计算.parallel 包提供了非常方便的函数用来进行并行计算,但有一个问题是并行时对于内存中的对象会拷贝多份,因此会比较占内存,这里提供一个比较简易的方法在内存中共享对象从而达到降低内存占用的目的. cl<-makeCluster(, type="FORK") result_list <- parLapply(cl, list, function) stopCluster(cl) 非常简单,在创建集群的时候添加type为…
【转】基于R语言构建的电影评分预测模型
一,前提准备 1.R语言包:ggplot2包(绘图),recommenderlab包,reshape包(数据处理) 2.获取数据:大家可以在明尼苏达州大学的社会化计算研究中心官网上面下载这些免费数据集,网站链接为http://grouplens.org/datasets/movielens/,也可以通过网盘下载https://yunpan.cn/Oc6R9apvCnVXGc访问密码 e1af.这里包含了数据集和数据说明,该数据集是由943位用户对1682部电影的一…
R语言 基本语法
R语言基本语法 我们将开始学习R语言编程,首先编写一个"你好,世界! 的程序. 根据需要,您可以在R语言命令提示符处编程,也可以使用R语言脚本文件编写程序. 让我们逐个体验不同之处. 命令提示符 如果你已经配置好R语言环境,那么你只需要按一下的命令便可轻易开启命令提示符 $ R 这将启动R语言解释器,你会得到一个提示 > 在那里你可以开始输入你的程序,具体如下. > myString <- "Hello, World!" > print ( myStr…
R语言编程艺术(5)R语言编程进阶
本文对应<R语言编程艺术> 第14章:性能提升:速度和内存: 第15章:R与其他语言的接口: 第16章:R语言并行计算 ========================================================================= 性能提升:速度和内存 要使R代码运行速度更快,有以下建议: 通过向量化的方式优化.使用字节码编译等: 将代码中最消耗CPU的核心部分用编译型语言编写,如C或C++: 将代码用某种并行的方式编写. 消除显示循环: 采用向量化提升速度…
R语言编程艺术(3)R语言编程基础
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ========================================================================= R语言编程结构 控制语句: 循环: for (n in x) { } while (condition) { } repeat { } 另外break也可以用在另两种形式的循环语句中.注意repeat没有跳出循环的判断条件,因此使用break(或者类似r…
R语言编程艺术(2)R中的数据结构
本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ========================================================================= R语言最基本的数据类型就是向量(vector),单个数值和矩阵都是向量的一种特例. 声明:R中不需要声明变量,但是注意函数式语言的特性,如果读写向量中的元素时,R事先不知道对象是向量的话,则函数没有执行的对象.如下代码是无法工作的: y[1]…
R语言编程
R中的帮助文档非常有用,其中有四种类型的帮助 help(functionname) 对已经加载包所含的函数显示其帮助文档,用?号也是一样的. help.search('keyword') 对已经安装的包搜索关键词,用??号功能一样. help(package='packagename') 显示已经安装的包的描述和函数说明 RSiteSearch('keyword') 在官方网站上联网搜索 R语言的启动 R语言启动后会首先查找有无.Rprofile文档,用户可通过编辑.Rprofile文档来自定义…
R语言编程艺术# 数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用typeof(x)函数查询. > #插入向量元素 > x <- c(88,5,12,13) > x [1] 88 5 12 13 > x <- c(x[1:3],168,x[4]) #插入168数字在13之前 > x [1] 88 5 12 168 13 > 2.…
R语言学习笔记:向量化
R语言最强大的方面之一就是函数的向量化,这些函数可以直接对向量的每个元素进行操作.例如: 对每个元素进行开方 > v<-c(4,3,8,16,7.3) > v [1] 4.0 3.0 8.0 16.0 7.3 > x<-sqrt(v)#计算每个元素的开方 > x [1] 2.000000 1.732051 2.828427 4.000000 2.701851 向量之间的加和: > v1<-c(4,6,2) > v2<-c(2,1,3) &…
R语言编程艺术# 矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一般的对象,矩阵是数组的一个特殊情形.数组可以是多维的.例如:一个三维数组可以包含行.列和层(layer),而一个矩阵只有行和列两个维度 1.创建矩阵 矩阵的行和列的下标都是从1开始,如:矩阵a左上角的元素记作a[1,1].矩阵在R中是按列存储的,也就是说先存储第一列,再存储第二列,以此类推. > y…
R语言编程艺术#03#列表(list)
向量的元素要求都是同类型的,而列表(list)与向量不同,可以组合多个不同类型的对象.类似于C语言中的结构体(struct)类型. 1.创建列表 从技术上讲,列表就是向理.之前我们接触过的普通向量都称为"原子型"(atomic)向量,就是说,向量的元素已经是最小的.不可再分的.而列表则属于"递归型"(recursive)向量. 以一个雇员数据库作为第一个例子.对于每个雇员,我们存储其姓名.工资,以及一个布尔变量,表示是否工会成员.这三个变量有三个不同的类型:字符串.…
R语言编程艺术#02#矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一般的对象,矩阵是数组的一个特殊情形.数组可以是多维的.例如:一个三维数组可以包含行.列和层(layer),而一个矩阵只有行和列两个维度 1.创建矩阵 矩阵的行和列的下标都是从1开始,如:矩阵a左上角的元素记作a[1,1].矩阵在R中是按列存储的,也就是说先存储第一列,再存储第二列,以此类推. > y…
R语言编程艺术#01#数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用typeof(x)函数查询. > #插入向量元素 > x <- c(88,5,12,13) > x [1] 88 5 12 13 > x <- c(x[1:3],168,x[4]) #插入168数字在13之前 > x [1] 88 5 12 168 13 > 2.…
R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 ========================================================================= 数学运算与模拟 数学函数: 数学函数 说明 exp() 以自然常数e为底的指数函数 log() 自然对数 log10() 以10为底的常用对数 sqrt() 平方根 abs() 绝对值 sin(), cos() 三角函数 min()…
R语言编程艺术(1)快速入门
这本书与手上其他的R语言参考书不同,主要从编程角度阐释R语言,而不是从统计角度.因为之前并没有深刻考虑这些,因此写出的代码往往是一条条命令的集合,并不像是“程序”,因此,希望通过学习这本书,能提高编程效率,以及让自己更像是一个“程序员”. 本文对应<R语言编程艺术>第1章:快速入门. 生成向量的函数c(),这里c表示“连接”(concatenate) 打印列表方式: print(listname) str(listname) 第一种将所有信息全部打印,第二种只是显示对象结构(structure…
R语言基于S4的面向对象编程
前言 本文接上一篇文章 R语言基于S3的面向对象编程,本文继续介绍R语言基于S4的面向对象编程. S4对象系统具有明显的结构化特征,更适合面向对象的程序设计.Bioconductor社区,以S4对象系统做为基础架构,只接受符合S4定义的R包. 目录 S4对象介绍 创建S4对象 访问对象的属性 S4的泛型函数 查看S4对象的函数 S4对象的使用 1 S4对象介绍 S4对象系统是一种标准的R语言面向对象实现方式,S4对象有明确的类定义,参数定义,参数检查,继承关系,实例化等的面向对象系统的特征. 2…
R语言编程中的常见错误
R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的.如果程序出错了,请检查以下几方面. 使用了错误的大小写.help().Help()和HELP()是三个不同的函数(只有第一个是正确的). 忘记使用必要的引号.install.packages("gclus")能够正常执行,然而Install.packages(gclus)将会报错. 在函数调用时忘记使用括号.例如,要使用help()而非help.即使函数无需参数,仍需加上(). 在Windows上,路…
<R语言编程艺术>的一个错误以及矩阵相加
R语言编程艺术讲矩阵这节时,举了个随机噪声模糊罗斯福总统画像的例子.但是里面似乎有个错误,例子本意是区域外的值保持不变,而选定区域的值加一个随机值,但是实际情况是两个行列不相等的矩阵相加,会报错,如果我有看错,请大家告诉我. 函数调用和参数输入: 然后是函数的编写: R中不同长高的矩阵是不能相加的,即使1X1,不会出现向量补齐的情况,下面举个极端的例子: > a<-matrix(1,1,1)> b<-matrix(1:2,2,1)> a [,1][1,] 1> b [,…
R语言︱文本挖掘——jiabaR包与分词向量化的simhash算法(与word2vec简单比较)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- <数据挖掘之道>摘录话语:虽然我比较执着于Rwordseg,并不代表各位看管执着于我的执着,推荐结巴分词包,小巧玲珑,没有那么多幺蛾子,而且R版本和python版本都有,除了词性标注等分词包必备功能以外,jiebaR还加入了一些基础的文本分析算法,比如提取关键字(TFIDF).分析文本相似性等等,真是老少咸宜. 同时官网也有一个在线jieba…
C语言入门编程思维引导
编程思维引导: C语言中 include<stdio.h> 称之为导包,导入写好的函数库,多个则依次写 #define N 3 意思是将N这个字母定义为数字3 当使用的时候就直接用 int a=N; 意思是int a=3 int main() 函数部分,多个函数依次写就是了,可以自己定义函数 { ... return 0; } //比如定义个求最大值的函数 int max(int a,int b) { if(a>b) return a; return b; } 函数将传入的参…
R语言学习笔记
向量化的函数 向量化的函数 ifelse/which/where/any/all/cumsum/cumprod/对于矩阵而言,可以使用rowSums/colSums.对于“穷举所有组合问题",可能需要combn/outer/lower.tri/expand.grid等函数.尽管apply可以显式消除循环,但它实际上是用R而不是C实现的,因此它通常并不能加速代码.然而,其他的apply函数,如lapply,对于加速代码非常帮助 环境和变量的作用域问题 在R语言中,函数被正式的称为“闭包”(clos…
R语言的前世今生(转)
最近因病休养在家,另外也算是正式的离开Snack Studio.终于有了大把可以自由支配的时间.可以自主的安排.最近闲暇的时间总算是恶补了不少前段时间行业没有时间关注的新事物.看着行业里引领潮流的东西,除非为数不多的天才能够创造得出,估计大多数人跟我一样,看着这些目不接暇的潮流总是觉得多少有些不知所措.但这并不妨碍从一个学习者的角度来了解这些新东西.类似本篇即将要谈到的R语言. 当一旦涉及一个新的领域.或一门新的语言.总是很容易陷入一些具体细节中而无法从更高的角度看到一门语言形成的背后的行业的背…
统计计算与R语言的资料汇总(截止2016年12月)
本文在Creative Commons许可证下发布. 在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来.由于工作原因,直到今年暑假一个赴京工作的机会与一位统计专业的人士聊天,才知道R语言的强大威力!(当然这里没有贬低SPSS, SAS,Stata的意思). R语言是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具.它是统计领域广泛使用的诞生于 1980年左右的 S 语言的…