我从统计测试得到了几个输出。这些输出采用带有名称的数字向量的形式。例如,我的一个输出的前4个值是:
a <- c(-2.676570e-08,-2.653513e-08,-2.612869e-08,-2.586143e-08);
b <- setNames(a,c("0.6234414% ","1.6209476%","2.6184539%","3.6159601% "))
class(b)
# "numeric"
我想选择与特定%匹配的值,例如相当于2%类别的值。但是我没有成功
我尝试了函数grep
(grep("2.", b, value=TRUE))
# 0.6234414% 1.6209476% 2.6184539% 3.6159601%
# "-2.67657e-08" "-2.653513e-08" "-2.612869e-08" "-2.586143e-08"
然而它返回整个向量
我对定义模式的理解是它会尝试匹配“”之间的表达式。当名称是一组字符串数字时,是否还需要使用其他规则或字符?
答案 0 :(得分:3)
您有两个问题:
1)您想要names(b)
而不是b
本身
2).
表示&#34;任何角色&#34;在grep()
,grepl()
,regexpr()
等使用的正则表达式中,您必须使用\\
所以使用类似的东西:
b[grep("2\\.",names(b))]
# 2.6184539%
#-2.612869e-08
b[grepl("2\\.",names(b))]
# 2.6184539%
#-2.612869e-08