首页 > 解决方案 > 使用 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

标签: rstring

解决方案


我会定义一个小函数来完成所有 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

推荐阅读