数据类型及基本命令_R

typeof() 查看变量类型,如int,double;

mode() / class()查看数据结构,如:numeric,vector,matrix

1、  向量及因子

构建向量的简单函数

c(); 无规律,但向量内存储的数据类型唯一

seq(from ,to, by,length.out); by指步长即间距;length.out指生成向量的长度

rep();each指每个元素重复的次数,len指定该向量的总元素个数

逻辑运算:

all(); 判断一个向量是否都问真值,返回布尔值:true&false;

Any();判断一个向量其中是否有真值

向量的某个元素的访问格式:

正的下标:提取向量中对应的元素

负的下标:去掉向量中对应的元素

逻辑运算:提出向量中元素的值满足条件的元素

Factor因子:对应统计中的分类数据,具有水平levels—指分类变量的不同取值和标签labels—即各个分类取值的具体名称Levels和labels数目可以不相等,levels数值唯一不重复;

       例:factor(x = character(), levels = sort(unique.default(x), na.last= TRUE), labels = levels, exclude = NA, ordered = is.ordered(x))

2、  数组和矩阵

数组Array(data, dim) data限定数据的内容,dim确定矩阵的维度—c(x,y,z…)

array(1:3, c(2,4)) # recycle 1:3 "2 2/3 times" (先列后行,下标由1开始)

#     [,1] [,2] [,3] [,4]

#[1,]    1    3    2    1

#[2,]    2    1    3    2

         矩阵matrix(),即二维数组;matrix(data = NA, nrow = 1行数, ncol = 1列数, byrow = FALSE矩阵按column进行排列, dimnames = NULL)

3、  数据框:具有两种属性,index—指行名及value—每个索引对应的值

特点:1、数据框是一种矩阵形式的数据结构;

    2、数据框内含的数据可以是不同类型的数据;

    3、每一列数据必须是同一类型,且每一列的长度必须相同;

构建方式

data.frame(..., row.names = NULL, check.rows = FALSE,

           check.names = TRUE, fix.empty.names = TRUE,

           stringsAsFactors = default.stringsAsFactors())

> df=data.frame(INDEX=1:4,column=c('a','b','c','d'), age=c(21,24,26,28))

> df

  INDEX column age

1     1      a  21

2     2      b  24

3     3      c  26

4     4      d  28

存在3中取值方式:

1)下标,切片取值:

> df[1:2,]

  INDEX column age

1     1      a  21

2     2      b  24

2)根据名称[[ ]]:

> df[['column']]

[1] a b c d

Levels: a b c d

3)根据名称 $:

> df$INDEX

 

[1] 1 2 3 4

读文件:read.table() 表格式文件; read.csv()  逗号分隔的文件;read.delim()  tab键分隔的文件;scan(“文件名”, what=(指定变量的类型)),通常scan赋予的数据类型是向量;

scan参考链接:https://cran.r-project.org/doc/manuals/r-release/R-data.html#Using-scan-directly

    https://my.oschina.net/stephenyng/blog/537399

写文件:write();write.table();write.csv();

4、  列表:也可以定义index,取值时可以用下标(从1开始),也可用index名

特点:1、列表是一种特殊的对象集合;

    2、元素可以是任意对象,不同元素可以是不同类型;

    3、元素本身允许是其他复杂的数据类型;

> L<-list(name='monique',age='24',gender='female',my=c(3,23,89))

> L

$`name` 

[1] "monique"

$age

[1] "24" 

$gender 

[1] "female"

$my 

[1] 3 23 89

> L$name

[1] "monique"

5、  控制流

1)  for(var in seq) {expr}

2)  while (condition) {expr}

3)  switch ()选择执行某个函数

switch的用法是switch(EXPR,....)

EXPR:可以为一个number或字符串

...:the list of alternatives

若EXPR为字符串,则该list必须具有名字,每个list项为name_i=expr_i,当EXPR与某个name_i严格匹配时,expr_i为结果。

若EXPR不为字符串,则强制转换为integer,后面的list按EXPR取值从1开始对应计算,并作为该函数的结果。

4)  repeat 常与if连用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值