设为首页 加入收藏

TOP

D02-R语言基础学习(一)
2019-08-15 00:09:20 】 浏览:178
Tags:D02-R 语言基础 学习

R语言基础学习——D02

20190423内容纲要:

   1、前言

  2、向量操作

    (1)常规操作

    (2)不定长向量计算

    (3)序列

    (4)向量的删除与保留

  3、列表详解

    (1)列表的索引

    (2)列表得元素属性

    (3)更改列表元素

    (4)删除列表元素

    (5)合并两个列表

    (6)将列表转换为向量

  4、推荐

 

1、前言

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

先随便玩点什么?

>ls()
#ls查看当前创建的变量,没有。那我们创建几个变量
>data <- c(1,2,3,4)
>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(1,2,3,4)
#(1)查看长度length
>length(a)
#(2)查看类型mode
>mode(a)
#(3)数字类型强行转成字符型
>c <- c(1,2,3, "r")
>mode(c)
#(4)更改向量中的元素
>c[2] <- "test"
>c
#5)可以对向量中的每一个元素都求平方根 >x <- c(4,8,6,7)
>y <- sqrt(x)
#(6)对向量进行加减计算当两个长度不等的向量相加会是怎样的呢???
>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]
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Patchwork(2013年)--CNV检测方.. 下一篇R语言dataframe的常用操作总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目