我有一个包含条目(类型:character)的data frame,这些条目可以是integers,也可以是这样的integers范围,用减号分隔:
ds1:
Values
12-15
5-10
2-3
12
40
3我想生成一个数据框,它保留整数值,但计算具有范围(两者的类型:num)的条目的平均值,即:
ds2:
Values
13.5
7.5
2.5
12
40
3到目前为止,我只删除了减号。但这种方法给了我下限,而不是计算两个界限之间的平均值的方法。我这样做是不是错了?如果有任何帮助,我将不胜感激,而且没有套餐偏好。
发布于 2020-06-12 23:43:18
下面是一个使用tidyr包中的separate_rows()函数的解决方案:
values<-c("12-15", "5-10", "2-3", "12",
"40", "3")
df <-data.frame(values)
library(dplyr)
library(tidyr)
df %>% mutate(ID = row_number()) %>% separate_rows(values, sep="[^[:alnum:].]+") %>%
group_by(ID) %>% summarize(values=mean(as.numeric(values)))
ID values
<int> <dbl>
1 1 13.5
2 2 7.5
3 3 2.5
4 4 12
5 5 40
6 6 3 https://stackoverflow.com/questions/62347530
复制相似问题