【发布时间】:2014-05-13 18:52:29
【问题描述】:
我对 R 环境有些陌生。
我有一组字符“测试”。如果我想从样本数据(数字)中过滤掉该列的所有对应值,我可以通过匹配列名来实现。
例如
> test <-c("aa", "bb", "zz")
> head(sample.data)
aa aa-001 aa-099 cc zz
1 5 6 7 2
> temp<-test%in% names(sample.data)
这给了我一个逻辑向量,我可以用它来获取所需的数据
>temp
TRUE FALSE FLASE FLASE TRUE
> req.vec <- sample.data[temp]
> req.vec
aa zz
1 2
但是,是否有可能除了 aa 的值,我也可以过滤掉 aa-001 和 aa-099 的对应值?我无法匹配“aa”的所有变体,因为数据有 100 种 aa、bb zz 等的变体。
【问题讨论】:
-
您希望如何更改样本数据的结果?您是说要保留以“aa”开头的每一列吗?
-
嗨,是的,我想生成一组数据,其中包含具有相同初始名称的所有列的值。实际上,对于不同的列名,只有最后四个字符会发生变化。例如。如果列名是 aa-001 aa-005 bbb-001 bbb-090 acdb-001 acdb-007 等,我对包含“aa”和“acdb”等的值感兴趣。
标签: r function filter subset logical-operators