这是我的数据框
df <- read.table(text="
unit
(15,30]
(60,75]
(75,90]
(45,60]
",header=TRUE)
我希望将其重新设置为15-30并能够按值对数据进行排序,换句话说,我希望能够使用min()命令。应该返回15-30,或者返回返回75-90的max()。
答案 0 :(得分:0)
即使格式很差并且正确的方法是从源代码更正格式,解决方法也可以是提取第一个值并转换为数字的简单正则表达式。即
df$v1 <- as.numeric(gsub('^\\((\\d+),\\d+]$', '\\1', df$unit))
#[1] 15 60 75 45
df[which.min(df$v1),]
# unit v1
#1 (15,30] 15
df[which.max(df$v1),]
# unit v1
#3 (75,90] 75