r语言 col_2. R语言基础语法

基础语法部分,将从数据类型,逻辑语法,输入输出3部分进行讲解

1. 数据类型介绍

1.1 基础数据类型

基础类型是一切数据存储与计算的基础,是不可再拆分的元数据

R语言有如下5种基础数据类型

1. 数字 numeric eg:1、-2、0.7

2. 字符 character eg:”hello”

3. 逻辑型 logical eg:TRUE、FALSE

4. 日期时间型 data/datatime

5. 空值 NA

1.2 复杂数据类型

复杂数据类型是为了方便计算或者存储,将基础数据类型进行某种形式的组装,或者将组装结果进行二次组装的数据表现形式。

R语言有如下4种复杂数据类型,并依据这些数据类型定义了一系列用于计算的方法。

这里只简单介绍各种数据类型代表的含义和创建方式,具体的使用方法详见https://blog.csdn.net/qq_39422642/article/details/78905665,就不全量搬运了

1.2.1 向量

定义向量

:默认间隔为1

v1 = 1:4
v2 = 11:18
v3 = 1.8:3.8
v4 = 1.8:4.2

6d829d6edcb51f1445aa7831d3d610c1.png

由v4可见,4.2没有达到4.8,也只会选择最近的那个

1.2.2 矩阵

如何创建矩阵

mat = matrix(1:16,nrow = 4,ncol = 4,byrow = TRUE)
#创建1:16的矩阵,行为4行,先按行排列
View(mat)

4c8545fe60ba5d5fde2a11ac270e1c12.png

1.2.3 向量框

> data1 = state.x77 #通常会通过矩阵来构造,x77是R中的内置数据
> data2 = data.frame(data1) #创建数据框
> View(data2)

1213857c4d279df63cb6ecb670d62986.png

1.2.4 列表

列表可以使用向量,矩阵或者读取进来的数据来创建。

> list1 = list(vector = v1, matrix=mat,data = data2)
> View(list1)

1213857c4d279df63cb6ecb670d62986.png

2. 逻辑语法

几乎所有高级语言的基础逻辑语法都包含3种最基本的构成,分支、循环、函数(方法)调用

2.1 分支语句 (if … else…)

x = 2
if(x<2) {
  print("Hello")
} else if(x<5) {
  print("Hi")
} else {
  print("Bye")
}

2.2 循环语句 (for 循环,while循环)

2.2.1 计算10以内所有偶数的和

sum = 0
for(i in 1:10) {
  if(i%%2==0) {
    sum = sum +i
    print(sum)
  }
}

输出:

[1] 2
[1] 6
[1] 12
[1] 20
[1] 30

2.2.2 计算30以内的所有正树的积,但积不许超过300

y=1
i=1
while (i<30) {
  if(y*i>300) {
    break
  } else {
    y = y*i
    i=i+1
    print(y)
  }
}

输出:

[1] 1
[1] 2
[1] 6
[1] 24
[1] 120

2.3 函数(或方法)调用

定义函数

// 定义函数
calcu = function(x,dire) {
  y = apply(x, dire, mean)
  return(y)
}

// 函数调用
calcu(mat,1)

3. 数据输入输出

3.1 数据导入

第一:如果自己学习写代码,加载R语言中本身自带的数据包cars等,加载的方法跟其他包相同,具体代码如下:

> install.packages("car")
> library(cars)

第二:读取外部数据一般用read.***( ),***代表要读取的文件类型,下面详细解释了每种类型的文件的读取:

read.table(file, header = FALSE, sep = "", quote = ""'",
           dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
           row.names, col.names, as.is = !stringsAsFactors,
           na.strings = "NA", colClasses = NA, nrows = -1,
           skip = 0, check.names = TRUE, fill = !blank.lines.skip,
           strip.white = FALSE, blank.lines.skip = TRUE,
           comment.char = "#",
           allowEscapes = FALSE, flush = FALSE,
           stringsAsFactors = default.stringsAsFactors(),
           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
read.csv(file, header = TRUE, sep = ",", quote = """,
         dec = ".", fill = TRUE, comment.char = "", ...)
read.csv2(file, header = TRUE, sep = ";", quote = """,
          dec = ",", fill = TRUE, comment.char = "", ...)
read.delim(file, header = TRUE, sep = "t", quote = """,
           dec = ".", fill = TRUE, comment.char = "", ...)
read.delim2(file, header = TRUE, sep = "t", quote = """,
            dec = ",", fill = TRUE, comment.char = "", ...)

eg.

mydata <- read.table("123.txt",sep = ',')
> mydata
  V1 V2 V3
1  1  2  3
2  4  5  6
3  7  8  9
> mydataD <- read.table("456.txt",sep = ',')
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : cannot open file '456.txt': No such file or directory
> mydataD <- read.table("D:456.txt",sep = ',')
> mydataD
  V1 V2 V3
1  1  2  3
2  4  5  6
3  7  8  9

常见数据类型读取与导入:

  1. txt文件:mydata <- read.table( )
  2. Excel格式数据:mydata <- read.xlsx( ),在使用这个函数之前,需要先安装xlsx包,安装方法跟其他包的安装方法一致。一般来说,读取xlsx文件速度较慢,通常将Excel文件保存为csv格式,然后再进行读取 mydata <- read.csv( )
  3. XML数据:读取XML数据前先要载入XML包,然后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))来读取

3.2 数据导出

在完成数据的分析工作之后,现在我们要将数据导出了,我们还是介绍两种类型csv和txt。

导出CSV文件:

write.table (data, file ="C:UsersAdministratorDesktopresultCsv.csv", sep =",", row.names =FALSE)

运行以上代码,你的对应路径中就会产生一个名为resultCsv.csv的数据文件:

导出TXT文件:

write.table(data,file="C:UsersAdministratorDesktopresultTxt.txt" , sep =" ", row.names =FALSE,col.names =TRUE, quote =FALSE)

sep指定变量间分隔符,默认为空格,row.names指定是否输出行号,col.names指定是否输出列名,quote指定是否用引号将变量包括。

跑完代码之后,你对应的文件夹目录下就多对出一个名为newdata的TXT格式数据文件。

3.3 绘图

绘图介绍 https://www.jianshu.com/p/213088700ad9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值