《Machine Learning for Hackers》一书的合著者John Myles White近日接受了一个访谈。在访谈中他提到了自己在R中常用的几个扩展包,其中包括用ggplot2包来绘图,用glmnet包做回归,用tm包进行文本挖掘,用plyr、reshape、lubridate和stringr包进行数据预处理。这些包本博客大部分都有所介绍,今天就来看看这个遗漏的stringr包。

从名字就看得出,stringr包是用来处理字符串的。R语言本身的字符处理能力已经不错了,但使用起来并不是很方便。stringr包将原本的字符处理函数进行了打包,统一了函数名和参数。在增强功能基础上,还能处理向量化数据并兼容非字符数据。stringr包号称能让处理字符的时间减少95%。下面将其中的一些主要函数罗列一下。

library(stringr)

# 合并字符串
fruit <- c("apple","banana","pear","pinapple")
res <- str_c(1:4,fruit,sep=' ',collapse=' ')
str_c('I want to buy ',res,collapse=' ')

# 计算字符串长度
str_length(c("i","like","programming R",123,res))

# 按位置取子字符串
str_sub(fruit,1,3)
# 子字符串重新赋值
capital <-toupper(str_sub(fruit,1,1))
str_sub(fruit,rep(1,4),rep(1,4))<- capital

# 重复字符串
str_dup(fruit,c(1,2,3,4))

# 加空白
str_pad(fruit,10,"both")
# 去除空白
str_trim(fruit)

# 根据正则表达式检验是否匹配
str_detect(fruit,"a$")
str_detect(fruit,"[aeiou]")

# 找出匹配的字符串位置
str_locate(fruit,"a")

# 提取匹配的部分
str_extract(fruit,"[a-z]+")
str_match(fruit,"[a-z]+")

# 替换匹配的部分
str_replace(fruit,"[aeiou]","-")

# 分割
str_split(res," ")

用stringr包处理字符串的更多相关文章

  1. R语言学习笔记(二十):stringr包中函数介绍(表格)

    stringr包中的重要函数 函数 功能说明 R Base中对应函数 使用正则表达式的函数 str_extract() 提取首个匹配模式的字符 regmatches() str_extract_all ...

  2. 根据包名字符串跳转Activity

    /** * 跳转到对应activity */ public void toActivity(Context context,String fullName) { if (className != nu ...

  3. R学习笔记 第五篇:字符串操作

    文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符,函数nchar用于获得字符串中的字符数量: > s='read' > nc ...

  4. R语言学习 第五篇:字符串操作

    文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符. 一,字符串中的字符数量 函数nchar()用于获得字符串中的字符数量: > s ...

  5. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...

  6. R语言数据结构一

    R是面向对象的语言,它跟其他编程语言的数据类型差不多,有四种,分别为:数值型,复数型,逻辑性和字符型 数值型:即数字,分为整数型和双精度型.数字可以用科学技术法表示,形式为Xe+m,意为x乘10的m次 ...

  7. R: 字符串处理包:stringr

    本文摘自:  http://blog.fens.me/r-stringr/ 1. stringr介绍 stringr包被定义为一致的.简单易用的字符串工具集.所有的函数和参数定义都具有一致性,比如,用 ...

  8. 在R语言中使用Stringr进行字符串操作

    今天来学习下R中字符串处理操作,主要是stringr包中的字符串处理函数的用法. 先导入stringr包,library(stringr),require(stringr),或者stringr::函数 ...

  9. R----stringr包介绍学习

    1. stringr介绍 stringr包被定义为一致的.简单易用的字符串工具集.所有的函数和参数定义都具有一致性,比如,用相同的方法进行NA处理和0长度的向量处理. 字符串处理虽然不是R语言中最主要 ...

随机推荐

  1. 【Unity】8.2 GUI Style和GUISkin

    分类:Unity.C#.VS2015 创建日期:2016-04-27 一.自定义GUI Control 功能控件 (Functional Control) 是游戏必要的,而这些控件的外观对游戏的美感非 ...

  2. FFmpeg编译:Linux下使用NDK编译FFmpeg

    环境: Ubuntu 1.下载并解压FFmpeg3.4.zip(略) 2.将编译脚本放入到FFmpeg解压后的目录. 3.执行编译脚本: ./linux_build_android.sh linux_ ...

  3. Virtual Memory$$memory-mapped-files

    Virtual Memory http://csapp.cs.cmu.edu/2e/ch9-preview.pdf https://howtodoinjava.com/java-7/nio/java- ...

  4. Presentational and Container Components

    https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0 There’s a simple pattern I fi ...

  5. c++map的用法

    Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数:   map<stri ...

  6. [Windows Azure] How to Scale a SQL Database Solution

    How to Scale a SQL Database Solution On Windows Azure, database scalability is synonymous with scale ...

  7. javascript基础拾遗(十一)

    1.DOM操作 1)查找 //根据id查找 document.getElementById() //根据html标签查找 documnet.getElementByTagName() //根据样式cl ...

  8. linux命令(52):usermod 修改账户信息,groupmod

    usermod: usermod [options] user_name usermod 命令修改系统帐户文件来反映通过命令行指定的变化 选项(options) -a|--append  ##把用户追 ...

  9. docker打开api remote接口设置

    前言  本文记录docker怎么打开api remote接口设置,docker的版本更新太快了,不同的版本之间,设置可能不同,本文是针对docker13.1 1. 查看配置文件位于哪里 systemc ...

  10. A. Counterexample (Codeforces Round #275(div2)

    A. Counterexample time limit per test 1 second memory limit per test 256 megabytes input standard in ...