如何用dplyr实现Excel LEFT函数功能并返回整数类型
解决方案:用dplyr提取整数左侧三位并返回整数类型
嘿,这个需求很容易搞定,我给你两种实用的方法,都能通过dplyr::mutate完美实现你的目标:
方法1:字符处理法(通用型)
如果你的Occupation变量后续可能出现不同位数的数值,这种通用方法更稳妥。思路是先把整数转成字符,用substr提取前三位,再转回整数类型:
library(dplyr) # 构造示例数据 sample_df <- tibble(Occupation = c(1111, 2112, 3117)) # 生成目标新变量 sample_df <- sample_df %>% mutate(Occupation_left3 = as.integer(substr(as.character(Occupation), start = 1, stop = 3)))
方法2:数学运算法(高效型)
既然你明确Occupation都是四位整数,直接用整数除法会更高效,不用来回转换字符类型:
sample_df <- sample_df %>% mutate(Occupation_left3 = Occupation %/% 10)
两种方法最终得到的Occupation_left3都是整数类型的111、211、311,完全符合你的预期。如果后续数值位数固定,优先选方法2;如果位数可能变化,方法1更灵活。
内容的提问来源于stack exchange,提问作者Ian_De_Oliveira
相关产品推荐
相关产品推荐

