备注
专门新开一篇文章讲这个函数主要是因为,现在网上搜索结果比较靠前的教程/帖子已经不适用于目前的R语言环境了,语法完全不一样,所以直接copy的话会报错
需求背景
分析留存数据时,数据库底表的字段是一个30位/两百位的字符串,比如0011111100000000000001,第一个0表示最近一天该用户没登陆,第三位的1表示3天前该用户登陆了,以此类推
底表的格式是字符串,但我下载格式是csv,csv自动把这个字段的格式改成数值型了(我也不知道为啥),所以我用R读取这个文件时,“0011111100000000000001“就变成了”11111100000000000001“,我需要在前面补0补满30位
解决方法
使用str_pad() 函数,该函数是用来把字符串填充为新的长度。
实例:
填充“0”到 game 中 active_200d 字段的左侧,并且填充到30个字符的新长度。
game$active_200d = as.character(game$active_200d)
str(game$active_200d)
game$active_200d = str_pad(game$active_200d, 30, side = "left", "0")
语法:
str_pad(string, length, side, pad_string)
• string
- 必需
- 规定要填充的字符串。
• length
- 必需。
- 规定新字符串的长度。
- 如果该值小于原始字符串的长度,则不进行任何操作。
• side
- 必选。
- 填充的方向
• pad_string
- 可选。
- 规定供填充使用的字符串。默认是空白。