美文网首页
社交网络分析的 R 基础:(二)变量与字符串

社交网络分析的 R 基础:(二)变量与字符串

作者: 电脑玩家张高兴 | 来源:发表于2022-02-06 15:46 被阅读0次

本章会从 R 语言中最基本的数据类型开始介绍,在此之后就可以开始 R 语言实践了。对社交网络分析而言,我们在处理字符串上所花费的时间要远远大于处理数字的时间,因此本章还会介绍常用的字符串处理操作。

变量

R 语言中基本的数据类型包括:

  1. 整型(integer):整数,如 100
  2. 浮点型(double):小数,如 3.14
  3. 字符串型(character):R 语言中的字符串可以使用 " 或者 ' 定义,如 "abc"'abc'
  4. 逻辑型(logical):其他编程语言中常称为布尔型,在 R 语言中使用严格区分大小写的 TRUEFALSE 表示,或者使用缩写 TF

💡 提示
R 语言中还存在数值型 numeric,可以看作整型和浮点型的并集。

变量就是对数据类型的引用,比如有一个整型值 100,想在程序中使用它并用 a 来表示,将 100 赋值给 a 后(a <- 100),a 就称之为变量。R 语言对变量的定义并不像强类型的语言一样需要在定义变量时声明变量的数据类型。当进行赋值操作时,就定义了一个新的变量。下面这段程序就是声明了一个变量 a,并且将 100 赋值给了变量 a,这三行代码的操作是等价的:

a <- 100
a = 100
100 -> a

在 R 语言中标准的赋值符号为 <-,这其中包含两个字符 <-。当然也可以使用 = 进行代替。从上面的代码也可以观察到,赋值符号 <- 是有方向性的,指向被赋值的对象。

变量的名称不是随意的,一个有效的变量名由字母开头,后面跟上任意数量的字母,数字以及下划线。下面是一些合法的变量名:aa1a_ba.b。下面是一些非法的变量名称:11a_a。当然,也不要使用关键字作为变量名,关键字是用于描述 R 语言的语法的。

字符串

字符串的创建

R 语言中的字符串既可以使用双引号 " 定义,也可以使用单引号 ' 定义。但是为什么要使用两种引号定义字符串?

> '这是包含"双引号"的字符串'
[1] "这是包含\"双引号\"的字符串"

> "这是包含'单引号'的字符串"
[1] "这是包含'单引号'的字符串"

这样做的好处是可以在不转义引号的情况下,创建本身就包含引号的字符串。可以在双引号 " 定义的字符串中使用单引号 ',也可以在单引号 ' 定义的字符串中使用双引号 "

使用 as.character() 可以将其他的数据类型转换成字符串:

> as.character(3.14)
[1] "3.14"

> as.character(T)
[1] "TRUE"

特殊字符的转义

转义是指输出具有特殊意义的字符,比如想要在双引号定义的字符串中使用双引号,或者在字符串中使用换行操作。和大多数语言一样,R 语言中使用反斜杠 \ 进行转义操作,常见的转义字符有换行符 \n,引号 \" \',以及对反斜杠本身进行转义 \\

> writeLines("Use \"double quotation\" in a string")
Use "double quotation" in a string

> writeLines("Use line breaks\nin a string")
Use line breaks
in a string

字符串的其他常用操作

获取字符串的长度 nchar()

> nchar("Social Network")
[1] 14

字符串的拼接 paste()sep 参数为连接的字符:

> paste("Social", "Network", sep = "-")
[1] "Social-Network"

字符串的分割 strsplit()

> strsplit("Social-Network", "-")
[[1]]
[1] "Social"  "Network"

字符串的截取 substr(),要注意的是,和大多数语言不同,R 语言的索引从 1 开始

> substr("Social Network", 1, 6)
[1] "Social"

字符串的格式化输出 sprintf(),在 R 语言中也采用类似 C 语言的风格对变量进行格式化:

  1. %s:字符串
  2. %f:浮点型
  3. %d:整数
  4. %e:科学计数法
> sprintf("The degree of the node is %d\n", 4)
[1] "The degree of the node is 4\n"

当需要输出转义字符串时,可以在外层套用 cat()

> cat(sprintf("The degree of the node is %d\n", 4))
The degree of the node is 4

✏️ 练习

  1. 第一章留下的问题 "a"+"b" 会输出 ab 吗,如何将 "a""b" 拼接成 "ab"
  2. 截取 "Social Network" 中的 "Network"。

参考

  1. <a id="1" target="_blank" href="https://cran.r-project.org/doc/manuals/r-release/R-intro.html">An Introduction to R</a>
  2. <a id="2" target="_blank" href="https://www.runoob.com/r/r-string.html">R 字符串 | 菜鸟教程</a>

相关文章

  • 社交网络分析的 R 基础:(二)变量与字符串

    本章会从 R 语言中最基本的数据类型开始介绍,在此之后就可以开始 R 语言实践了。对社交网络分析而言,我们在处理字...

  • 社交网络分析的 R 基础:(一)初探 R 语言

    写在前面 3 年的硕士生涯一转眼就过去了,和社交网络也打了很长时间交道。最近突然想给自己挖个坑,想给这 3 年写个...

  • 好书共分享——《凭什么是神作》

    分享理由:抛开剧情,用社交网络关系和R也能知道《权力的游戏》为什么如此受欢迎。 文章主要逻辑:借助社交网络分析图,...

  • 知乎社交网络分析(下):关注网络

    关键词:社交网络分析(SNA) | 复杂网络 | 图论 | 网络中心度 | 热门话题发现 本文是《知乎社交网络分析...

  • Python基础

    Python基础一 数据类型与变量 字符串: 'abc'与"abc" 均可表示字符串,不论单双引号。布尔值:Tru...

  • 03-Nextflow脚本

    语言基础 Hello world、变量、列表、映射、多重赋值、条件执行、字符串、字符串插值、多行字符串 内置变量 ...

  • 从数学的视角看社交网络

    社交网络分析(SNA)是探索关系背后的科学与技术,从数学的角度看社交网络,用图论的方法探查社交网络。在技术上,通过...

  • Python基础语法 - 数据类型

    一、 数据类型 变量的定义与声明 常用的基础数据类型 字符串的常见操作 字符串的截取 字符串的运算 字符串的常用函...

  • C/C++语言基础

    语言基础 字符串类-string 常量与变量 运算符 程序和语句 字符串类-string (属于类类型)(c++中...

  • shell(2)变量的核心基础知识与实践

    shell(2)变量的核心基础知识与实践 什么是shell变量 变量就是用一个固定的字符串(也可能是字符、数字等的...

网友评论

      本文标题:社交网络分析的 R 基础:(二)变量与字符串

      本文链接:https://www.haomeiwen.com/subject/gpvukrtx.html