R语言:计算斜杠分隔数字的字符串向量各元素数字之和
解决R语言中斜杠分隔数字字符串的求和问题
刚好碰到过类似的需求,给你两种实用的解法,都能快速得到你想要的结果:
基础R原生解法(无需额外包)
这种方法用R自带的函数就能搞定,步骤很清晰:
- 用
strsplit()把每个字符串按斜杠/拆分成字符向量 - 遍历每个拆分后的向量,转成数值型后求和
代码示例:
numbers <- c("1/1/1", "1/0/2", "1/1/1/1", "2/0/1/1", "1/2/1") # 计算每个字符串的数字和 result <- sapply(strsplit(numbers, "/"), function(x) sum(as.numeric(x))) print(result) # 输出:[1] 3 3 4 4 4
tidyverse生态解法(更直观的管道式写法)
如果你习惯用tidyverse的工具,用stringr和purrr组合起来会更流畅:
代码示例:
library(tidyverse) numbers <- c("1/1/1", "1/0/2", "1/1/1/1", "2/0/1/1", "1/2/1") result <- numbers %>% str_split("/") %>% # 拆分字符串 map_dbl(~ sum(as.numeric(.x))) # 遍历求和,返回数值向量 print(result) # 输出:[1] 3 3 4 4 4
两种方法都能完美得到你预期的结果,选哪种看你平时的代码风格啦~
内容的提问来源于stack exchange,提问作者Arnaud Panes
相关产品推荐
相关产品推荐

