矢量与名称和选择部分选择字符串变量(R)

时间:2015-10-13 22:57:21

标签: r string vector subset

我从统计测试得到了几个输出。这些输出采用带有名称的数字向量的形式。例如,我的一个输出的前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" 

然而它返回整个向量

我对定义模式的理解是它会尝试匹配“”之间的表达式。当名称是一组字符串数字时,是否还需要使用其他规则或字符?

1 个答案:

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