r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430

一、基本原理

R是一种解释型语言,输入的命令可以直接被执行,不同于C等编译语言需要构成完整的程序才能运行。

R的语法非常简单和直观。合法的R函数总是带有圆括号的形式,即使括号内没有内容(如,ls())。所有函数后都接有圆括号以区别于对象(object)。

所有能使用的R函数都被包含在一个库(library) 中,该库存放在磁盘的R HOME/library目录下(R HOME是最初安装R的地址)。这个目录下含有具有各种功能的包(packages),各个包也是按照目录的方式组织起来的。其中名为base的包可以算是R的核心,因为它内嵌了R语言中所有像数据读写与操作这些最基本的函数。在上述目录中的每个包内,都有一个子目录R,这个目录里又都含有一个与此包同名的文件(例如在包base中,有这样一个文件R HOME/library/base/R/base)。该文件正是存放所有函数的地方。

R语言中最简单的命令就是通过一个对象来显示其内容。如,一个名为name的对象,其内容为‘content’

name

name

## [1] "content"

或使用函数输出对象的内容

print(name)

## [1] "content"

注:对象的名字必须是以一个字母开头(A–Z 或a–z), 中间可以包含字母,数字(0–9),点(.)及下划线( ).因为R对对象的名字区分大小写,所以x 和X就可以代表两个完全不同的对象(在Windows操作系统中也是如此)。

二、对象的产生、排列及删除

一个对象可以通过赋值操作来产生,R语言中的赋值(“assign”) 符号一般是由一个尖括号与一个负号组成的箭头形标志。该符号可以是从左到右的方向,也可以相反:

n

n

## [1] "hello, world"

n -> 'hello, world'

n

## [1] "hello, world"

如果该对象已经存在,那么它以前的值将会自动被新值冲掉(这种修改只会影响内存中的数据,操作结果暂时不会被保存到硬盘中)。

n

n

## [1] "Goodbye"

函数ls的功能是显示所有在内存中的对象:只会列出对象名。注意在R中应该用分号来隔开同一行中的不同命令语句。

name

ls()

## [1] "hello, world" "m" "n" "name"

如果只要显示出在名称中带有某个指定字符的对象,则通过设定选项pattern 来实现(可简写为pat).

ls(pat = 'n')

## [1] "n" "name"

ls(pattern = 'm')

## [1] "m" "name"

如果进一步限制显示为在名称中以某个字母开头的对象

ls(pattern = '^m')

## [1] "m"

运行ls.str()将会显示内存中所有对象的详细信息ls.str 将会列出关于对象的所有信息,包括数据框,矩阵,数据列表的列数信息。

ls.str()

## hello, world : chr "hello, world"

## m : chr "monkey"

## n : chr "noodles"

## name : chr "content"

f

ls.str(pattern = 'f')

## f : 'data.frame': 1 obs. of 3 variables:

## $ n : Factor w/ 1 level "noodles": 1

## $ m : Factor w/ 1 level "monkey": 1

## $ name: Factor w/ 1 level "content": 1

设定max.level可改变对象的显示内容。

print(ls.str(pattern = 'f'), max.level = -1)

## f : 'data.frame': 1 obs. of 3 variables:

print('###')

## [1] "###"

print(ls.str(pattern = 'f'), max.level = 1)

## f : 'data.frame': 1 obs. of 3 variables:

## $ n : Factor w/ 1 level "noodles": 1

## $ m : Factor w/ 1 level "monkey": 1

## $ name: Factor w/ 1 level "content": 1

要在内存中删除某个对象,可利用函数rm:运行rm(x)将会删除对象x,运行rm(x,y)将会删除对象x和y,而运行rm(list=ls())则会删除内存中的所有对象.

ls()

## [1] "f" "hello, world" "m" "n" "name"

rm(f)

ls()

## [1] "hello, world" "m" "n" "name"

rm(n, m)

ls()

## [1] "hello, world" "name"

rm(list = ls(pattern = '^h'))

ls()

## [1] "name"

三、在线帮助

R中给予的在线帮助能提供关于如何使用函数的非常有用的信息。

?print #查看特定函数的帮助.

## starting httpd help server ... done

help(print)

help('print')

对初学者而言,参考帮助中Examples部分的信息是很有用的。而一般应该仔细阅读Arguments中的一些说明也是非常有必要的。帮助中还包含了其它一些说明部分,如Note, References或Author(s)等。

查询关于某特殊语法意义字符的帮助。

# help(*)

help("*")

默认状态下,函数help只会在被载入内存中的包中搜索。选项try.all.package在缺省值是FALSE,但如果把它设为TRUE,则可在所有包中进行搜索。

help('bs')

## No documentation for 'bs' in specified packages and libraries:

## you could try '??bs'

help('bs', try.all.packages = TRUE)

但注意在这种情况下,不会显示关于函数bs的帮助页面,如果使用者确实想打开这样的页面而所属包又没有被载入内存时,可以使用package这个选项.

help('bs', package = 'splines')

Html格式的帮助可以通过输入下面的函数启动.在html格式的帮助页面中还可以使用关键词进行搜索.

help.start()

## If nothing happens, you should open

## 'http://127.0.0.1:31375/doc/html/index.html' yourself

使用函数apropos则能找出所有在名字中含有指定字符串的函数,但只会在被载入内存中的包中进行搜索

apropos("help")

## [1] "help" "help.request" "help.search" "help.start"

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

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

相关文章

旋流式沉砂池计算_旋流沉砂池设计方法

旋流沉砂池设计接口条件和主要参数设计旋流沉砂池前要确认的接口条件和信息包括:地质、气候等基本设计条件;可用地尺寸及在总图的位置坐标;地坪标高,上下游水位或范围,冻土层高度,管道覆土小深度要求&#…

parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池

线程组线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。构造函数ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name)具体方法//评估当前活跃的线程数,包括当前group和子g…

java 缓冲流_Java缓冲流的使用

package java;import org.junit.Test;import java.io.*;/*** 处理流之一:缓冲流的使用** 1.缓冲流:* BufferedInputStream* BufferedOutputStream* BufferedReader* BufferedWriter** 2.作用:提供流的读取、写入的速度* 提高读写速度的原因&a…

pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)

推荐守门员应该将球踢到哪个位置,才能让自己的队员用头击中。1.无正则化模型判别是否有正则化与调用其他计算函数。准确率:0.948/0.915明显过拟合overfiting了。2.L2正则化公式如下,在原有cost函数基础上增加L2项,L2为参数w的均方…

java 代码锁_Java中的Lock锁

Lock锁介绍:在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景、高效的性能,java还提供了Lock接口及其实现类ReentrantLock和读写锁 ReentrantReadWriteLock。相比synchronized来实现同步,使…

vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...

对于“日”来说,大家都并不陌生,对于日的成语更是多得数不胜数,今天小编将日字成语进行了一个总结,需要用到的朋友们可以收藏!一:以“日”开头的成语,大多数形容的是时间。日积月累、日久天长、…

java 访问路径_java获取项目访问路径的相关方法

java获取项目访问路径的相关方法刘振兴代码分享2016年02月11日6292暂无评论在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获…

java 保存文件在服务器_java文件保存至服务器

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class ImageRequest{/*** 读取网络图片并保存至服务器硬盘中* param imgUrl* return …

mysql or走索引吗_加了索引,mysql查询就一定会用吗?

小白白跑去鹅厂面试,面试官提出了一个很实际的问题: mysql增加索引,那些情况会失效呢?谈一下实际工作中遇到的情况。我们的小白白又抛出了白氏秘籍:用不用索引,找DBA小姐姐!啊?这是你…

java单词查找树_Trie 单词查找树 java实现(来自算法第4版)

强烈建议看书上的实现步骤,这里只是一个个人记录。单词查找树的性能:查找命中所需的时间与被查找的键的长度成正比。比如单词有7个字符,查找或插入操作最多只需要检查8个节点。查找未命中只需检查若干个字符。所需空间:在RN~RNw之…

学python开发必须要会wsgi么_学python着几个要搞清楚WSGI和uWSGI区别

Python: 解决pip安装源被墙的问题pip install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.c ...resin的简单介绍和使用1.resin是一款应用服务器(application server),它自身也包含一款支持Http1.1协议的WEB服务器(web server),它也可以…

java 连接 sftp失败_java – 文件上传到SFTP失败(Apache VFS)

我有一个SFTP问题(WindowsWinSSHD).我尝试用Apache Commons VFS在一个文件夹中写一个文件.在本地SFTP上我没有上传的问题,但在第二个SFTP上我总是得到以下错误.FTP看起来像这样:我需要上传到文件夹“alis”.奇怪的是它没有User / Group和770权限.但是,使用FileZilla…

基本农田卫星地图查询_如何基于西安80坐标查询定位

1. 概述水经注软件除了可以轻松下载无水印Google Earth卫星影像、有明确拍摄日期的历史影像、地方高清天地图、百度高德大字体打印地图,且可按1万/5千等国家标准图幅下载,下载含高度的全国矢量建筑、全国乡镇及街区行政区划、地名点、高速铁路网、公交路…

java getipaddress_教你java用getAddress方法取得IP地址

本篇教你java用getAddress方法取得IP地址:getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址。getAddress方法的定义如下:public…

tcp的无延时发送_高并发架构的TCP知识介绍

这是关于高并发架构网络协议基础知识的第二篇,编程路上的基础心法!做为一个有追求的程序员,不能只满足增删改查,我们要对系统全方面无死角掌控。掌握了这些基本的网络知识后,相信一方面日常排错中会事半功倍&#xff0…

java lambda sorted_Java8:Lambda表达式增强版Comparator和排序

1、概述在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。首先,让我们先定义一个简单的实体类:public class Human …

如何对一个变量数据进行正则判定_生存分析数据中的BuckleyJamesMultipleRegression Model...

一、模型简介目前,生存分析领域,最常用的是Cox比例风险回归模型,该模型具有良好的特性,不仅可以分析各种自变量对生存时间的影响,而且对基准风险分布不作任何要求(半参数模型)。Cox模型使用时要满足一定的条件&#xf…

格兰杰因果关系检验r语言_R语言系列第四期:R语言单样本双样本差异性检验

之前详细介绍了利用R语言进行统计描述,详情点击:R语言系列第三期:①R语言单组汇总及图形展示、R语言系列第三期:②R语言多组汇总及图形展示、R语言系列第三期:③R语言表格及其图形展示从这个部分我们就开始为大家介绍统…

python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...

原标题:手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码原作 Arnaud Zinflou郭一璞 编译时序数据,也就是时间序列的数据。像股票价格、每日天气、体重变化这一类,都是时序数据,这类数据相当常见,…

java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...

1.导入jar包:org.springframework.bootspring-boot-starter-activemqorg.apache.activemqactivemq-pool2.填写配置文件(application.properties)#设置JMS(AMQ)spring.activemq.broker-urltcp://localhost:61616spring.activemq.useradminspring.activemq.passwordad…