[转] R 4 字符串处理

# 数据准备
x<-c("abcd","abcdef","good")
x1<-"gabcde"
y<-"好好"
z<-"学习"
z1<-"天天向上"

# 1、查询函数

nchar(x1)  # 字符串的长度,即有几个字符
    # 如果x1是数据框之类的,则返回的数值就不是正确的值,究竟是什么值,有待确定
    # 如果字符中存在保留字符,比如"和\就会出现错误,有待处理
# 字符串向量中,每个字符串的长度
    方法1:
        nchar(x)   # 字符串向量中,每个字符串的长度
    方法2:
        str_length {stringr}    # 解决了今天早些时候遇到的转义符问题,但是仍没有解决"和\字符
        all['descLength'] = str_length(all$item_description)
length(x)    # 向量的长度,即包含几个元素
x[2]  # 向量中的第2个元素
x[[3]]  # 向量中的第3个元素

grep("b",x)  # 查询向量x中包含"b"的元素的位置:第1、第2个元素中含有"b"
grep("[b,o]",x)  # 查询x中包含"b"或者"o"的元素的位置:第1、第2、第3个元素中含有"b"或者"o"

regexpr("def","abcdefghi")  # def从第4个字符位置上出现
gregexpr("def","abcdefghijabcdef")  # def在第4和第14个字符位置上出现
# 2、分割类
strsplit(x1,"")  # 将x1分割,标志为空,即全部分割
strsplit(x1,"b")  # 将x1分割,标志为"b",即按照"b"的位置进行分割,分割后"b"没有了
# 3、接连类
paste(y,z,z1,sep="")  # 将y,z,z1,以间隔""相结合,默认为" ",即一个空格
paste(y,z,z1,sep="-")  # 将y,z,z1,以间隔"-"相结合
# 4、提取类
substr(x1,2,4)  #将x1字符串的第2至第4个之间的字符截取出来
substr(x,2,3)  #将x各字符串的第2至第4个之间的字符截取出来
# 5、替换类
chartr("ab","hk",x1)  # 将x1中的ab替换为hk
chartr("b","k",x)  # 将x1中的ab替换为hk
chartr("好","天",y)  # 将x1中的ab替换为hk

sub("ab","hk",x1)  # 将x1中的ab替换为hk
sub("b","k",x)  # 将x1中的ab替换为hk

gsub("ab","hk",x1)  # 将x1中的ab替换为hk
gsub("b","k",x)  # 将x1中的ab替换为hk
# 由于R对参数都是传值而不是传址,所以严格来讲R没有字符串替换函数

原文:http://www.ppvke.com/Blog/archives/29060

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值