首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文本范围转换为单个整数

将文本范围转换为单个整数
EN

Stack Overflow用户
提问于 2020-02-17 15:02:53
回答 3查看 140关注 0票数 0

如果我有一组包含以下内容的数据:

代码语言:javascript
运行
复制
0-3
0-3
0-3
2-6
2-6
2-6
2-6
2-6
1-3

我怎样才能把这个数字转换成一个数字,比如上面的值,或者更好的两个数字的平均值--连字符的两边?

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-17 15:11:47

您可以使用read.table-上拆分,并使用rowMeans获取平均值。

代码语言:javascript
运行
复制
x <- c("0-3", "2-6", "1-3")

rowMeans(read.table(text=x, sep="-"))
#[1] 1.5 4.0 2.0
票数 3
EN

Stack Overflow用户

发布于 2020-02-17 15:14:32

你可以用tidyverse来做这个

代码语言:javascript
运行
复制
d <- c("0-1", "1-1","2-0")

data.frame(d) %>% separate(col = d, sep = "-", into = c("l", "r")) %>% 
  mutate(average = (as.numeric(l) + as.numeric(r) / 2))

  l r averaged
1 0 1      0.5
2 1 1      1.5
3 2 0      2.0
票数 1
EN

Stack Overflow用户

发布于 2020-02-17 15:20:30

另一个基R解

代码语言:javascript
运行
复制
sapply(strsplit(dat,"-"),function(v) mean(as.numeric(v)))

代码语言:javascript
运行
复制
rowMeans(`class<-`(do.call(rbind,strsplit(dat,"-")),"numeric"))

这样的话

代码语言:javascript
运行
复制
# [1] 1.5 4.0 2.0

数据

代码语言:javascript
运行
复制
dat <- c("0-3", "2-6", "1-3")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60265206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档