R语言学习之字符串处理实例(2)之获取名字最长的州

通过实例来学习R对字符串的处理。
用到的数据集是R自带的USArrests
查看该数据集的前几行

> head(USArrests)
           Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

获取州的名字的集合

> states = rownames(USArrests);head(states) 
[1] "Alabama"    "Alaska"     "Arizona"    "Arkansas"  
[5] "California" "Colorado"  

字符统计:获得名字最长的州名

state_chars <- nchar(states);head(state_chars) #获取每个州名的字母数量
[1]  7  6  7  8 10  8
> states[which(state_chars == max(state_chars))] #名字最长的州
[1] "North Carolina" "South Carolina"

解决问题的逻辑思路是:
1. 已知的条件:一个包含州名的数据集。通过查看该数据集,可以看出州名是该数据集的列名。
2. 思路:a. 获取州名 b. 统计每个州名的字母数量 c. 找出字母数量最多的州。
3. 具体函数的用法:
nchar(x)。参数x为一个字符串向量,向量中有多个元素,类型也是字符串,该函数会统计输入向量x中的每个元素的长度,并在原元素的位置上返回该元素的长度值,即阿拉伯数字。
max(x)函数的作用是识别一串数字中的最大值,并返回该最大数字的值。
which()函数的主要作用是筛选输入向量中符合条件的元素,返回值是该元素在向量中的位置。

参考文献:正则表达式及R字符串处理之终结版(Posted by yphuang on March 15, 2016)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值