R的基础学习

1.atomic vector :一维的,放置同一类型数据的数据类型

1.1创建:由c()函数 ,seq()函数,rep()等函数创建。

>a<-c(a,b,c)   #combine,将c()函数的参数联合起来成一个向量

>a<-seq(1,3) #sequence,以一定的间隔形成一个向量(等比数列),默认项差为1.
>a
#1,2,3
>a<-1:3
>a
#1,2,3   

>a<-rep(1,100) #repeat,第一个参数为重复的量,第二个参数为重复次数.

1.2访问方式:通过索引或是通过names属性

>a<letters[1:5]
>names(a)<-LETTERS[1:5]  #属性的个数必须和元素个数一致
>a[1]
#[1] "a"
>a["A"]
# A
a

2.list :一维的,可以放置不同类型数据

> a <- list(num = 1:3, alphabet = letters[1:3])
>names(a)
#[1] "num" "alphabet"

>a$num #通过$访问元素
[1]1 2 3
>a[[1]]  #通过[[]]访问元素
[1]1 2 3 

>a[1]  #通过[]获得子list
$num
[1] 1 2 3

  

3.matrix:二维的,放置同种类型数据

3.1用matrix函数创建矩阵

>a<-11:22
>m<-matrix(a,ncol=3,nrow=4)#ncol,列数;nrow,行数
>m
##      [,1] [,2] [,3]
## [1,]    11    15   1 9
## [2,]    12    16   20
## [3,]    13    17   21
## [4,]    14    18   22

>m[7] #使用访问atomic vector的方法访问matrix
[1] 17
>m[3,2]#使用访问matrix的方法访问
[1] 17
>m[,2]#访问第二列
[1] 15 16 17 18
>m[,2,drop=FALSE]#访问第二列,但仍保持matrix形式
   [,1]
[1,] 15
[2,] 16
[3,] 17
[4,] 18

####矩阵的方法和属性####
>dim(m) #矩阵的大小
[1] 4 3
>ncol(m)#矩阵的列数
[1] 3
>nrow(m)#矩阵的行数
[1] 4

>rownames(m)<-letters[1:4]#增加row的名称
>colnames(m)<-Letters[1:3]#增加column的名称
>m
##    A  B  C
## a  1  2  3
## b  4  5  6
## c  7  8  9
## d 10 11 12

>d<-matrix(1:12,ncol=3,nrow=4)
>row<-rbind(d,m) #rbind=row bind 增加row,column保持不变
>col<-cbind(d,m) #cbind=column bind 增加column,row保持不变

>t(d) #t()函数(transpose),转置。

4.Data frame:Data frame就是由一系列长度相等的vectors构成。它继承了vector的所有方法,包括atomic vector和list的方法,比如访问某一列可以使用‘$‘符号。它是2维的,它一样也有和matrix相同的方法。

4.1用data.frame()函数创建

> df <- data.frame(A = 1:3, B = letters[1:3]) #接受的参数是atomic vector
> df
##   A B
## 1 1 a
## 2 2 b
## 3 3 c

>str(df)
## ‘data.frame‘:    3 obs. of  2 variables:
##  $ A: int  1 2 3
##  $ B: Factor w/ 3 levels "a","b","c": 1 2 3

>df$A   #访问元素,返回一个atomic vector.
##[1] 1 2 3>is.atomic(df$A)[1] TRUE

>df[["B"]]
## [1] a b c
## Levels: a b c>is.atomic([["B"]])[1] TRUE

>df[1,] #和matrix一样的方法
##   A B
 1     1  a

>cbind(df,C=0)
##   A B C
## 1 1 a 0
## 2 2 b 0
## 3 3 c 0

  

时间: 2024-08-26 08:47:04

R的基础学习的相关文章

从零开始系列-R语言基础学习笔记之二 数据结构(一)

在上一篇中我们一起学习了R语言的环境搭建,这次我们开始学习R语言的数据结构第一部分:向量.数组和矩阵. 一.向量 向量是一维数组,其内容可以是数值.字符或布尔值,但所有数据的类型必须一致.创建向量使用的关键字是c,访问向量中的元素使用[],具体如下: 创建数值向量a<-c(1,2,3,4,5,6) 创建字符向量b<-c("a","b","c") 创建布尔向量c<-c(TRUE,FALSE) 访问向量: a[3] 得到的值是3,注

D01-R语言基础学习

R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理大数据集 5.R的数据结构 (1)向量 (2)矩阵 (3)数组 (4)数据框 (5)列表 6.实例演练 7.小结 1 R的下载与安装 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 学习它那就先下载它!话不多说

R基础学习(1):R概述

R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka和Robert Gentleman共同创立.它是属于GNU系统的一个自由.免费.源代码开放的软件,同时也是一个用于统计计算和统计制图的优秀工具. 一.R的发展历史 要说R,就不得不先来说一下S语言.1980年左右,AT&T贝尔实验室设计出一种在统计领域广泛使用的S语言.S语言是一种解释型语言,被设计用来进行数据探索.统计分析和作图. S语言最初的实现版本主要是S-PLUS,它是一个基于S语言的商业软件,由MathSoft公

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种: -b a:表示不论是否为空行,也同样列出行号(类似cat -n): -b t:如果有空行,空的那一行不要列出行号(默认值).-n:列出行号表示的方法,主要有三种: -n ln:行号在屏幕的最左方显示: -n rn:行号在自己字段的最右方显示,且不加0

Python 基础学习 网络小爬虫

<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imgli

Java基础学习总结——Java对象的序列化和反序列化

一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s

pyqt treeview基础学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Tree(QTreeView): def __init__(self,parnet=None,*args): super(Tree,self).__init__(parnet,*a