我有一个 data frame
的条目(类型。character
),这些条目要么是 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
到目前为止,我只设法去掉了减号。但这种方法给我的是下界,而不是计算两界之间的平均值的方法。我的方法是否有误?我希望得到任何帮助,并且没有包的偏好。
下面是一个解决方案,使用 separate_rows()
tidyr包中的函数。
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