1 取整运算

在编程实现的时候有时会碰到对数值取整的需求,而取整的方式却多种多样,依赖于具体问题,不过在R中已经配备了种类齐全的相关函数,主要包括以下五种:

floor():向下取整;

ceiling(): 向上取整;

round(): 四舍五入取整;

turnc(): 向0取整;

signif(): 保留给定位数的精度。

2 浮点数

关于浮点数的问题几乎在每一本关于数值分析的书中都会在第一章中提及,而因为浮点数导致的计算精度问题也几乎在各式各样的数学和统计软件中碰到,不妨看一个比较简单的例子

> sum(c(2,1.2,-0.8,-2.4,3,1.2,3.1,-1.5,-4.4,-1.4))
[1] -2.220446e-16

如果你有强迫症,或许下面的命令可以拯救你(所谓强制转换为整数,当然也可以采用问题1中所提及的方法)

as.integer(sum(c(2,1.2,-0.8,-2.4,3,1.2,3.1,-1.5,-4.4,-1.4)))

 3 数据框合并

数据框的整合是R中处理数据时的家常便饭,面对这类问题,一般来说最佳选择必然是Hadley的dplyr包,玩转数据框必备且实属精品,当然除此之外,R base本身自带的merge()也可以起到类似的效果,关于merge的使用,除了R中的帮助文档外,还可以stackoverflow上的 这篇帖子 。至于dplyr, 不妨用一个例子来说明问题

library(dplyr);

set.seed(100);

df1<-data_frame(Num=rep(1:3,each=3),value=rnorm(9));

df1;

df2<-data_frame(Num=1:3,date=c("12-25","07-01","09-10"));

df2;

inner_join(df1,df2,by="Num");

4 关于赋值

不同于MATLAB, R中的赋值符号除了传统的"="外,还有"<-"以及"->",出于对某种赋值方式的偏好,也逐渐出现了等号党和箭头党,但到底孰好孰坏,显然争不出任何结果,相对来说更重要的倒是了解这两者的区别。在大部分情况下,两者等价,但是需要注意以下区别:

(1) 等号只能单向赋值,例如x = 10; 箭头符号可以双向赋值,即x<-10与10->x等价

(2) 在函数中赋值(参数传递)只能使用"=", 尽管使用"<-"也不会报错,在R会忽略指定的赋值对象,转而赋值给默认顺序中该位置的参数,例如构造矩阵中,

> matrix(1:6,ncol<-3)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> matrix(1:6,ncol=3)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

事实上第一条命令等价于 matrix(1:6,3) , 因为在默认的参数排序中nrow排在ncol之前,从而将数字3赋值给了nrow.

(3)除函数内参数赋值外,能用"="等地方一定能用"<-",但反过来则不一定,譬如 system.time(A<-matrix(1:6,3))不能替换为等号。

当然除了上述两种赋值方式外,还有一种赋值方式"<<-"也偶尔在R编程运用到,表示给上一层环境中的变量赋值(注意并不是全局赋值,具体可以参考这个 帖子 )。

5 工作目录

由于涉及到读取和存储数据等问题,工作目录有时候也是一个会被关心的问题,但真正会涉及到的无非就是工作目录的获取和修改,分别对应如下两个函数

getwd():理论上可以不用在括号里加任何东西

setwd():若需要重新设置工作目录,只需在括号中添加新的路径即可

6 概率分布

关于这一点,CRAN上有一个专门针对这个话题的Task View,所以也就无需多言了,直接附上链接

http://cran.r-project.org/web/views/Distributions.html

7 字符大小写转换

tolower() #全部转为小写 toupper() #全部转为大写

8 查看上一步的运算结果

类似于MATLAB中的ans, R中也有类似于可以查看上一步运行结果的变量 .Last.value,值得一提的时,由于前面多了一个点,因此这是一个隐藏变量,所以在 ls()中是查不到的。

> 1+1
[1] 2
> .Last.value
[1] 2

9 更改相关的默认设置

相应的默认设置譬如语言、工作目录、需自动加载的包等都可在R安装目录下的etc文件中修改。

10 特殊符号

NA: 缺失数据

NaN: 无意义的数

Inf: 正无穷大

-Inf: 负无穷大

11 快捷键

利用快捷键往往可以省去很多点鼠标的功夫或是加快码代码的速度,譬如Tab可以实现自动补全,Alt+"-"可以直接输出"<-" (Rstudio) 以及Ctrl+R 运行当前代码等等。

R语言常用操作的更多相关文章

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

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

  2. R语言常用的矩阵操作

    R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法.下面列出一些常用的矩阵操作方法示例. 矩阵的生成 > mat <- matrix(:, ncol = , nrow = , ...

  3. R语言集合操作

    熟练运用R语言的集合操作在很多时候可以省去for循环,从而提升数据处理效率.废话不多说,集合操作相对简单,贴一段代码就懂了! > A<-: > A [] > B<-,,) ...

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

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

  5. R语言常用数据管理

    1.变量的重命名 (1)交互式编辑器修改变量名 若要修改数据集x中的变量名,键入fix(x)即可打开交互式编辑器的界面.若数据集为矩阵或数据框,单击交互式编辑器界面中对应要修改的变量名,可手动输入新的 ...

  6. R语言︱常用统计方法包+机器学习包(名称、简介)

    一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...

  7. R语言常用包分类总结

    常用包: ——数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc: ——机器学习:nnet,rpart,tree,party,lars,boost, ...

  8. R语言常用命令集合

    help.start()//打开帮助文档 q()//推出函数 ls()//返回处于现在名空间的对象名称 rm()//清楚对象:rm(list=ls())清除所有内存数据 gc()//垃圾回收数据 sq ...

  9. R语言常用包汇总

    转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...

随机推荐

  1. C#配置文件

    今天为大家讲一下为什么有时候我们创建项目的时候没有自带的配置文件项目,如下: 图1没有自己的配置文件,图二有自己的配置文件. 其实很简单,那是因为很多时候我们创建项目的时候,默认就会创建.NET Fr ...

  2. 牛客国庆集训派对Day3 I Metropolis

    Metropolis 思路: 多源点最短路 只要两个不同源点的最短路相遇,我们就更新两个源点的答案 代码: #pragma GCC optimize(2) #pragma GCC optimize(3 ...

  3. Codeforces 444 C - DZY Loves Colors

    C - DZY Loves Colors 思路: 分块,复杂度有点玄学,和普通分块不同的是在这个块被一次染色的时候暴力染整个块. 代码: #pragma GCC optimize(2) #pragma ...

  4. html5 history 信息api pushState

    这个功能可以进行传参,还可以解决ajax无法前进和倒退的问题 首先,history新增的两个方法history.replaceState()和history.pushState()方法属于HTML5浏 ...

  5. lua --- 用break实现continue逻辑

    循环中内嵌一个循环,然后将具体的逻辑放在内嵌循环中去处理,在内嵌循环的开始,添加一个判断语句,满足条件就跳出内嵌循环. 示例代码如下: tab = {,,,,} ,#tab do while true ...

  6. 免费的剪贴板工具Ditto安装与使用

    下载地址:https://sourceforge.net/projects/ditto-cp 直接安装,选择好安装的位置,一直选择默认的选项就行

  7. python requests库与json数据处理详解

    1. http://docs.python-requests.org/zh_CN/latest/user/quickstart.html get方法将参数放在url里面,安全性不高,但是效率高:pos ...

  8. kibana的 timelion工具

    时序控件(Timelion)是一款时间序列数据可视化工具,它可以将多种独立的数据源合并呈现到一张视图上. .es函数 index 指明索引    .es(index=nginx-access-log- ...

  9. elasticsearch查询语句

    1,安装es 安装java环境 # java --versionjava version "1.8.0_65" Java(TM) SE Runtime Environment (b ...

  10. spring boot(五)Spring data jpa介绍

    在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spr ...