R语言基础学习——D02

20190423内容纲要:

  1、前言

  2、向量操作

    (1)常规操作

    (2)不定长向量计算

    (3)序列

    (4)向量的删除与保留

  3、列表详解

    (1)列表的索引

    (2)列表得元素属性

    (3)更改列表元素

    (4)删除列表元素

    (5)合并两个列表

    (6)将列表转换为向量

  4、推荐

1、前言

怕什么真理无穷,进一寸有进一寸的欢喜。

先随便玩点什么?

>ls()
#ls查看当前创建的变量,没有。那我们创建几个变量
>data <- c(,,,)
>string <- "I like R"
>ls()
#那么如果想删除变量呢
>rm(data)
>ls()

感觉跟linux命令太像了!有时间把linux的学习笔记整理一下!!!

下面说两个小技巧:

#(1)换行。
# 不要把一句话输完,缺一个括号啊什么的,回车它会显示一个“+”号,这样就可以接着写语句,算是换行了
>mylist <- list(stud.id=1234,
+ stud.name="Tom",
+ stud.marks=c(12, 3, 14, 25, 18))
#(2)清屏
Ctrl + L

2 向量操作

(1)常规操作

# 创建向量
>a <- c(,,,)
#()查看长度length
>length(a)
#()查看类型mode
>mode(a)
#()数字类型强行转成字符型
>c <- c(,,, "r")
>mode(c)
#()更改向量中的元素
>c[] <- "test"
>c
#)可以对向量中的每一个元素都求平方根
>x <- c(,,,)
>y <- sqrt(x)
#()对向量进行加减计算当两个长度不等的向量相加会是怎样的呢???
>z <- x + y

 (2)不定长向量计算

#(7)当两个长度不等的向量相加,不是补零,而是将短的循环与长的加一起!python中的广播?
#不同长度的向量相加时需要特别注意长的对象长度不是短的对象长度的整倍数
> x <- c(1, 1, 1, 1, 1)
> y <- c(2, 2, 2)
> z <- x + y
Warning message:
In x
+ y : 长的对象长度不是短的对象长度的整倍数
> x <- c(1, 1, 1, 1, 1, 1)
> y <- c(2, 2, 2)
> z <- x + y
> z
[1] 3 3 3 3 3

(3)序列

#(8)生成序列
#生成序列,从1开始10结束,步长为2
> x <- seq(1,10,2)
> x
[1] 1 3 5 7 9
#生成循环序列,序列数5,循环10
> x <- rep(5,10)
> x
[1] 5 5 5 5 5 5 5 5 5 5
#生成循环序列,序列数1:3,循环3次
> rep(1:3, 3)
[1] 1 2 3 1 2 3 1 2 3
#生成10个均值为0,方差为1的随机数
> rnorm(10)
[1] -1.6103872 -1.3784579 1.8143056 0.7482350 2.5612867 -1.5183595 -0.6851633 -1.0225507 0.2810904 0.1618640
#生成6个均值为6,方差为2的随机数
> rnorm(6, mean=6, sd=2)
[1] 5.792479 7.257183 7.816276 5.060411 6.039296 3.343846

(4)删除和保留向量

#(9)删除向量中的一个元素
> x <- c(0, -3, 4, -1, 45, 98, -12)
#只保留大于0的
> x[x>0]
[1] 4 45 98
#只保留小于等于2或者大于5的
> x[x<=-2 | x>5]
[1] -3 45 98 -12
#不要第五个
> x[-5]
[1] 0 -3 4 -1 98 -12
#不要前三个
> x[-(1:3)]
[1] -1 45 98 -12

3 列表详解

首先创建一个列表。增删改查都有。

> mylist <- list(stud.id=1234,
+ stud.name="Tom",
+ stud.marks=c(12, 3, 14, 25, 18))
> mylist
$stud.id
[1] 1234 $stud.name
[1] "Tom" $stud.marks
[1] 12 3 14 25 18

(1)查列表的索引(切片)

首先,R语言中的列表的索引(切片)不太一样,单、双括号都可以,提取的元素不一样。

此外,不是从0开始!不是从0开始!不是从0开始!

> x <- 1:1000
> length(x)
[1] 1000
#第一种
> mylist[[1]]
[1] 1234
#第二种
> mylist[1]
$stud.id
[1] 1234
#第三种
> mylist$stud.id
[1] 1234 > mylist[[0]]
Error in mylist[[0]] :
attempt to select less than one element in get1index <real>

(2)查列表的元素属性

#查看类型
> mode(mylist[[1]])
[1] "numeric"
> mode(mylist[1])
[1] "list" #查看名称,其实也算是切片的一种。类似python中的字典,取key,上面的索引取value
> names(mylist)
[1] "stud.id" "stud.name" "stud.marks"

(3)更改列表元素

#添加元素
> mylist$parents <- c("man", "Jutice")
> mylist
$id
[1] 1234 $names
[1] "Tom" $marks
[1] 12 3 14 25 18 $parents
[1] "man" "Jutice"

(4)删除列表元素

> length(mylist)
[1] 4
> mylist <- mylist[-4]
> mylist
$id
[1] 1234 $names
[1] "Tom" $marks
[1] 12 3 14 25 18

(5)合并两个列表

> other <- list(age=19, sex="male")
> other
$age
[1] 19 $sex
[1] "male" > newlist <- c(mylist, other)
> newlist
$id
[1] 1234 $names
[1] "Tom" $marks
[1] 12 3 14 25 18 $age
[1] 19 $sex
[1] "male"

(6)将列表变成一个向量unlist

> unlist(newlist)
id names marks1 marks2 marks3 marks4 marks5 age sex
"" "Tom" "" "" "" "" "" "" "male"

4、推荐

  其实最近最近关于R语言的学习断了快半个月了,没怎么看这方面的。有时间整理一下PLC的资料!!!

推荐几个python实战项目吧。有时间可以试一试:别光说不做!!!

(1)python实战项目 | python制作天气查询软件  https://mp.weixin.qq.com/s/Yca8RM_ivxND48NVM4qffg

(2)python实战项目 | python创建微信机器人  https://mp.weixin.qq.com/s/LQ_4GcI9c_MeBTpQKc7eAg

我是尾巴~

人生在世,需要一点高于柴米油盐的品相!

别失去希望,再坚持一下!

D02-R语言基础学习的更多相关文章

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

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  2. 从零开始系列--R语言基础学习笔记之一 环境搭建

    R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...

  3. D01-R语言基础学习

    R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理 ...

  4. D03-R语言基础学习

    R语言基础学习——D03 20190423内容纲要: 1.导入数据 (1)从键盘输入 (2)从文本文件导入 (3)从excel文件导入 2.用户自定义函数   3.R访问MySQL数据库 (1)安装R ...

  5. D02——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D02 20180801内容纲要: 1 字符串的系列操作 2 集合 3  文件的读写 4 字符编码转换 5 小结 6 练习:三级菜单(有彩蛋) 1 字符串的系列操 ...

  6. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  7. D03——C语言基础学习PYTHON

    C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...

  8. R语言可视化学习笔记之添加p-value和显著性标记

    R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr ...

  9. R语言基础画图/绘图/作图

    R语言基础画图/绘图/作图 R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介 ...

随机推荐

  1. 27 isinstance与issubclass、反射、内置方法

    isinstance与issubclass issubclass:判断子类是否属于父类,是则返回True,否则返回False isinstance:判断对象是否属于类,是则返回True,否则返回Fal ...

  2. 一道区间DP的水题 -- luogu P2858 [USACO06FEB]奶牛零食Treats for the Cows

    https://www.luogu.org/problemnew/show/P2858 方程很好想,关键我多枚举了一次(不过也没多大关系) #include <bits/stdc++.h> ...

  3. Oracle启动两个监听

    接上篇:Oracle服务器修改IP后 Oracle服务器更换IP后,办公网络里面可以正常访问了,外地的同事,连了vpn 也可以访问,以为可以收工回家,突然又有同事过来说,机房的服务器ping不通新的i ...

  4. 2018.10.31 NOIP模拟 几串字符(数位dp+组合数学)

    传送门 如果观察到性质其实也不是很难想. 然而考试的时候慌得一批只有心思写暴力233. 下面是几个很有用的性质: c0,1+1≥c1,0≥c0,1c_{0,1 }+1 ≥ c_{1,0} ≥ c_{0 ...

  5. ASP项目部署IIS7.5中遇到的问题

    我们大家都熟悉了tomcat服务器的部署,如果是一个ASP项目如何部署呢.这也是我在客户现场遇到的问题.ASP项目一般是用的系统组件IIS来部署项目.下面我讲一下自己在部署过程中遇到的问题. 如果在网 ...

  6. jquery 特效

    http://demo.howtoexe.com/instagram-gravity-gallery/index.html

  7. 牛客训练四:Applese 走方格(细节)

    题目链接:传送门 思路:主要是n=1,m=2或者n=2,m=1时,不是-1. #include<iostream> #include<cstdio> #include<c ...

  8. .NET性能优化(文摘)

    第1章 性能指标 1.1 性能目标 1.2 性能指标 第2章 性能度量 2.1 性能度量方式 白盒测试-小程序 黑盒测试-大型程序 2.2 Windows内置工具 2.2.1 性能计数器 2.2.2  ...

  9. hdu6365 2018 Multi-University Training Contest 6 1004 Shoot Game

    http://acm.hdu.edu.cn/showproblem.php?pid=6365 细节处理 unique返回的是最后一位的后一位,因此从1开始的数组要减去(p+1) 结构体可以用unqiu ...

  10. Hdu1054 Strategic Game(最小覆盖点集)

    Strategic Game Problem Description Bob enjoys playing computer games, especially strategic games, bu ...