- 阅读权限
- 255
- 威望
- 2 级
- 论坛币
- 28191 个
- 通用积分
- 1739.6743
- 学术水平
- 410 点
- 热心指数
- 421 点
- 信用等级
- 355 点
- 经验
- 2099 点
- 帖子
- 1410
- 精华
- 1
- 在线时间
- 1035 小时
- 注册时间
- 2010-6-18
- 最后登录
- 2023-8-18
|
- library(stringr)
- V1 <- c("-100.2+60.3*A1", "-78.675+74.888*B1","-33.63+143.234*B1") #示例向量
- M <- matrix(c(as.numeric(str_extract(V1, "-\\d+.\\d+")),
- as.numeric(str_extract(V1, "\\+\\d+.\\d+")),
- str_extract(V1, "^*[A-Z]\\d+")), length(V1)) #提取分解
- # [,1] [,2] [,3]
- #[1,] "-100.2" "60.3" "A1"
- #[2,] "-78.675" "74.888" "B1"
- #[3,] "-33.63" "143.234" "B1"
- M[which(M[, 3] == "A1"), 3] <- 3 #把矩阵中字母元素换成数值
- M[which(M[, 3] == "B1"), 3] <- 4 #有几个就换几个
- res <- cbind(M, as.numeric(M[, 1]) + as.numeric(M[, 2]) * as.numeric(M[, 3]))#矩阵第4列是结果
- # [,1] [,2] [,3] [,4]
- #[1,] "-100.2" "60.3" "3" "80.7"
- #[2,] "-78.675" "74.888" "4" "220.877"
- #[3,] "-33.63" "143.234" "4" "539.306"
复制代码
|
-
总评分: 论坛币 + 10
查看全部评分
|