r - 使用 R 对数字字符串进行操作
问题描述
我想对由数字字符串组成的向量做一些基本操作
string<-c("1_3_4","3_5_5_1","4_2")
我想计算每个字符串的总和、平均值、最大值和最小值。
stringsum<-function (string)===> 8 14 6
stringmean<-function (string)===> 2.666667 3.5 3
stringSup<-fuction (srtring)===> 4 5 4
stringInf<-function (string)===> 1 1 2
解决方案
我会定义一个小函数来完成所有 4 个函数的工作。它将您的字符向量和您选择的任何函数作为其参数。它从每个条目中提取数字以生成数字向量列表,然后将您选择的任何函数应用于列表中的每个向量
string_do <- function(s, func) {
sapply(lapply(strsplit(s, "\\D"), as.numeric), func)
}
所以你可以这样做:
string_do(string, sum)
#> [1] 8 14 6
string_do(string, mean)
#> [1] 2.666667 3.500000 3.000000
string_do(string, min)
#> [1] 1 1 2
string_do(string, max)
#> [1] 4 5 4
推荐阅读
- c++ - 你能找出一对结构吗?
- jquery - 使用循环使用 jQuery 为单个列表项设置动画
- java - Java如何获取用户数据目录
- python-3.x - ftp.nlist() 500 限制解决方法
- react-router - 单独组件中的链接和路由
- docker - Filebeat 和 Kafka:客户端已用完可与之交谈的代理
- flutter - TextSpan 的文字不显示是否溢出并放在 WidgetSpan 之后
- python - 为什么在我编写的这段代码中的“else”函数中“中断”和语法错误时会出现“中断外部循环”?
- sentry - 如何使用管理员密码配置自托管哨兵?
- clojure - 如何在 Clojure 中创建一个空集合?