R语言第一讲

 一、R语言入门推荐

  1. 推荐四本材料书:
        R CookBook :hhtp://www.cookbook-r.com/R in Action http://www.amazon.com/R-Action-Robert-Kabaccoff/dp/1935182390Ggplot2:Elegant Graphics for Data Analysis(User R):hhtp://www.amazon.com/ggplot2-ELegant-Graphics-Data-Analysis/dp/0387981403Advanced R
  1. 安装ggploat2,用于数据可视化,适用于一些画图。 install.packages(‘ggploat2’)
  2. 加载ggploat2,liabrary(‘ggplot2’)
  3. 更新,update.packages()

练习源码:

install.packages('ggplot2')
library(ggplot2)
update.packages()v = c(1,4,4,3,2,2,3)
v[c(2,3,4)]
v[2:4] 
v[c(2,4,3)]
v[-2] 
v[-2:-4]
v[v<3]
which(v==3) 
set.seed(250)
a = runif(3, min=0, max=100)
floor(a)   #向下保留整数的函数
ceiling(a) #向上保留整数的函数
round(a,4) #保留四位小数

        R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力你的编程工作。 R的内置帮助系统提供了当前已安装包中所有函数①的细节、参考文献以及使用示例。帮助文档可 以通过表1-2中列出的函数进行查看。 

        函数help.start()会打开一个浏览器窗口,我们可在其中查看入门和高级的帮助手册、常 见问题集,以及参考材料。函数RSiteSearch()可在在线帮助手册和R-Help邮件列表的讨论存 档中搜索指定主题,并在浏览器中返回结果。由函数vignette()函数返回的vignette文档一般是 PDF格式的实用介绍性文章。

三、了解工作空间

         工作空间(workspace)就是当前R的工作环境,它储存着所有用户定义的对象(向量、矩阵、 函数、数据框、列表)。在一个R会话结束时,你可以将当前工作空间保存到一个镜像中,并在下 次启动R时自动载入它。各种命令可在R命令行中交互式地输入。使用上下方向键查看已输入命 令的历史记录。这样我们就可以选择一个之前输入过的命令并适当修改,最后按回车重新执行它。
 当前的工作目录(working directory)是R用来读取文件和保存结果的默认目录。我们可以使 用函数getwd()来查看当前的工作目录,或使用函数setwd()设定当前的工作目录。如果需要读 入一个不在当前工作目录下的文件,则需在调用语句中写明完整的路径。记得使用引号闭合这些 目录名和文件名。 

1、 建立一个R语言学习的工作空间

     首先自己建立一个文件夹,用来存放你的R工程项目目录。

     建立  : G:\RWorkSpace\project1

setwd("G:/RWorkSpace/project1")
options()
options(digits = 3)
x<-runif(20)
summary(x)
hist(x)
savehistory()
save.image()
q()

       首先,当前工作目录被设置为C:/myprojects/project1,当前的选项设置情况将显示出来,而 数字将被格式化,显示为具有小数点后三位有效数字的格式。然后,我们创建了一个包含20个均 匀分布随机变量的向量,生成了此数据的摘要统计量和直方图。最后,命令的历史记录保存到文 件.Rhistory中,工作空间(包含向量x)保存到文件.RData中,会话结束。 注意setwd()命令的路径中使用了正斜杠。R将反斜杠(\)作为一个转义符。即使在Windows 平台上运行R,在路径中也要使用正斜杠。同时注意,函数setwd()不会自动创建一个不存在的 目录。如果必要的话,可以使用函数dir.create()来创建新目录,然后使用setwd()将工作目 录指向这个新目录。 在独立的目录中保存项目是一个好主意。我通常会在启动一个R会话时使用setwd()命令指 定到某一个项目的路径,后接不加选项的load()命令。这样做可以让我从上一次会话结束的地 方重新开始,并保证各个项目之间的数据和设置互不干扰。在Windows和Mac OS X平台上就更简单了。跳转到项目所在目录并双击保存的镜像文件即可。这样做可以启动R,载入保存的工作空 间,并设置当前工作目录到这个文件夹中。 

四、输入输出

       启动R后将默认开始一个交互式的会话,从键盘接受输入并从屏幕进行输出。不过你也可以 处理写在一个脚本文件(一个包含了R语句的文件)中的命令集并直接将结果输出到多类目标中。
 1. 输入 函数source("filename")可在当前会话中执行一个脚本。如果文件名中不包含路径,R将 假设此脚本在当前工作目录中。举例来说,source("myscript.R")将执行包含在文件 myscript.R中的R语句集合。依照惯例,脚本文件以.R作为扩展名,不过这并不是必需的。

2. 文本输出 函数sink("filename")将输出重定向到文件filename中。默认情况下,如果文件已经存 在,则它的内容将被覆盖。使用参数append=TRUE可以将文本追加到文件后,而不是覆盖它。 参数split=TRUE可将输出同时发送到屏幕和输出文件中。不加参数调用命令sink()将仅向屏幕 返回输出结果。

3. 图形输出 虽然sink()可以重定向文本输出,但它对图形输出没有影响。要重定向图形输出,使用 列出的函数即可。最后使用dev.off()将输出返回到终端。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1567. 乘积为正数的最长子数组长度

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums &#xff0c;请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1&#xff1a; 输入&#xff1a;nums [1,-2,-…

python中的互斥锁

如果没有控制多个线程对同一资源的访问&#xff0c;对数据造成破坏&#xff0c;使得线程运行的结果不可预期。这种现象称为“线程不安全”。 线程同步解决问题: 系统调用t1&#xff0c;然后获取到num的值为0&#xff0c;此时上一把锁&#xff0c;即不允许其他现在操作num 对nu…

R语言第二讲

1、R语言包的概念 R提供了大量开箱即用的功能&#xff0c;但它最激动人心的一部分功能是通过可选模块的下载和安装 来实现的。目前有2500多个①称为包&#xff08;package&#xff09;的用户贡献模块可从 http://cran.r-project.org/ web/packages 下载。这些包提供了横跨各种…

LeetCode 1568. 使陆地分离的最少天数(DFS)

文章目录1. 题目2. 解题1. 题目 给你一个由若干 0 和 1 组成的二维网格 grid &#xff0c;其中 0 表示水&#xff0c;而 1 表示陆地。 岛屿由水平方向或竖直方向上相邻的 1 &#xff08;陆地&#xff09;连接形成。 如果 恰好只有一座岛屿 &#xff0c;则认为陆地是 连通的 &…

python中的非阻塞使用互斥锁

锁定方法acquire可以有一个blocking参数。 如果设定blocking为True&#xff0c;则当前线程会堵塞&#xff0c;直到获取到这个锁为止&#xff08;如果没有指定&#xff0c;那么默认为True&#xff09; 如果设定blocking为False&#xff0c;则当前线程不会堵塞 from threading im…

在XML文件中定义动画(1)

① 打开Eclipse&#xff0c;新建Android工程② 在res目录中新建anim文件夹③ 在anim目录中新建一个myanim.xml(注意文件名小写)④ 加入XML的动画代码 <?xml version"1.0" encoding"utf-8"?><set xmlns:android"http://schemas.android…

LeetCode 1569. 将子数组重新排序得到同一个二叉查找树的方案数(DP)

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums 表示 1 到 n 的一个排列。 我们按照元素在 nums 中的顺序依次插入一个初始为空的二叉查找树&#xff08;BST&#xff09;。 请你统计将 nums 重新排序后&#xff0c;统计满足如下条件的方案数&#xff1a;重排后得到的二叉查…

ADS1.2开发环境创建与简要介绍

ADS1.2下建立工程 1.运行ADS1.2集成开发环境&#xff08;CodeWarrior for ARM Developer Suite&#xff09;&#xff0c;点击File|New,在New对话框中&#xff0c;选择Project栏&#xff0c;其中共有7项&#xff0c;ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执…

多线程的全局变量与局部变量

在多线程开发中&#xff0c;全局变量是多个线程都共享的数据&#xff0c;而局部变量等是各自线程的&#xff0c;是非共享的。 from threading import Thread import time classMyThread(Thread): # 重写 构造方法 def __init__(self, num): # Thread.__init__(self) super(MyT…

const类型成员函数与mutable

const类型成员函数与mutable 原文&#xff1a;http://houhualiang.i.sohu.com/blog/view/42619368.htm const类型的成员函数是指使用const关键字进行修饰的类的成员函数。const类型的成员函数对函数内部的操作加以一定的限制&#xff0c;比如不可以对对象的属性进行修改等&…

阿里云 超级码力在线编程大赛初赛 第2场 题目1. 三角魔法

文章目录1. 题目2. 解题1. 题目 题目来源&#xff1a;https://tianchi.aliyun.com/oj/15165469968503404/76745683722506851 2. 解题 采用直线的一般式进行判定 首先要能组成三角形然后是我的位置和第3点在另外两点形成的直线同侧 class Solution { public:/*** param tria…

R语言第四讲 之R语言数据类型

基本类型 通常&#xff0c;在使用任何编程语言进行编程时&#xff0c;您需要使用各种变量来存储各种信息。 变量只是保留值的存储位置。 这意味着&#xff0c;当你创建一个变量&#xff0c;你必须在内存中保留一些空间来存储它们。 您可能想存储各种数据类型的信息&#xff0…

python中的死锁

在线程间共享多个资源的时候&#xff0c;如果两个线程分别占有一部分资源并且同时等待对方的资源&#xff0c;就会造成死锁。 尽管死锁很少发生&#xff0c;但一旦发生就会造成应用的停止响应。下面看一个死锁的例子 from threading import Thread, Lock import time mutex1 …

linux 编译安装apache

1、下载apache、安装apache #wget http://apache.etoak.com//httpd/httpd-2.4.4.tar.gz #tar zxvf httpd-2.4..4.tar.gz2. 安装apache 之前要先安装 apr 和 apr-util apr 下载地址 http://apr.apache.org/download.cgi # wget http://mirrors.cnnic.cn/apache//apr/apr-1…

阿里云 超级码力在线编程大赛初赛 第2场 题目3. 五字回文

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/15165469968503404/76745683722506852 2. 解题 注意 a,b,c互不相同 class Solution { public:/*** param s: The given string* return: return the number of Five-character palindrome*/in…

R语言第五讲 之R语言 变量

概述 变量为我们提供了我们的程序可以操作的命名存储。 R语言中的变量可以存储原子向量&#xff0c;原子向量组或许多Robject的组合。 有效的变量名称由字母&#xff0c;数字和点或下划线字符组成。 变量名以字母或不以数字后跟的点开头。 变量名合法性原因var_name2.有效有字…

python中解决死锁的方法

1.添加超时时间&#xff1a; fromthreading import Thread, Lock importtime mutex1 Lock() # 创建一个互斥锁 mutex2 Lock() # 创建一个互斥锁 def fun1(): while True: mutex1.acquire() print("线程1 锁住了mutex1") time.sleep(0.1) result mutex2.acquire(…

[内核摘要] 虚拟文件系统

Linux支持多种文件系统类型的方式和其他类Unix系统类似&#xff0c;通过虚拟文件系统来实现。 对每个读&#xff0c;写或其他操作文件系统的调用函数&#xff0c;内核都用实际支持各种文件系统的函数来代替。 12.1 虚拟文件系统(VFS)的角色 VFS是一个内核软件层&#xff0c;用来…

python之数据库连接

概述 前几日&#xff0c;闲来无事&#xff0c;写了一个python来连接数据库的模板案例&#xff0c;仿照传统MVC的例子。代码如下&#xff1a; DBUtil import pymysqlclass DBUtil:__db None__obj None__init_flag True__cursor Nonedef __new__(cls, *args, **kwargs):if …

python同步应用:多个线程有序执行

可以使用互斥锁完成多个任务&#xff0c;有序的进程工作&#xff0c;这就是线程的同步 from threading import Thread, Lock import time mutex1 Lock() # 创建一个互斥锁 mutex2 Lock() # 创建一个互斥锁 mutex3 Lock() # 创建一个互斥锁 def fun1(): while 1: mutex1…