重新格式化向量

时间:2019-05-16 09:17:55

标签: r vector

这是我的数据框

df <- read.table(text="
 unit 
 (15,30]
 (60,75]
 (75,90]
 (45,60]
",header=TRUE)

我希望将其重新设置为15-30并能够按值对数据进行排序,换句话说,我希望能够使用min()命令。应该返回15-30,或者返回返回75-90的max()。

1 个答案:

答案 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