【问题标题】:Vector with names and selection partial selection of string variables (R)带有名称的向量和字符串变量的选择部分选择 (R)
【发布时间】:2016-01-11 20:55:16
【问题描述】:

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

但是它返回整个向量

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

【问题讨论】:

  • 您希望从您的示例中得到什么结果?不确定你想要grep(),因为它会将结果强制转换为字符

标签: r string vector subset


【解决方案1】:

你有两个问题:

1) 您希望索引 names(b) 而不是 b 本身。
2). 表示grep()grepl()regexpr() 等使用的正则表达式中的“任何字符”,所以你必须用\\ 转义它

所以使用类似的东西:

b[grep("2\\.",names(b))]
#   2.6184539% 
#-2.612869e-08 

b[grepl("2\\.",names(b))]
#   2.6184539% 
#-2.612869e-08 

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 2022-08-17
    • 2016-07-30
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多