【问题标题】:Select specific columns determined by the headers [duplicate]选择由标题确定的特定列[重复]
【发布时间】:2016-09-11 15:50:04
【问题描述】:

以下是我的示例数据:

set.seed(13435)
x <- data.frame("Alex"=sample(1:5),"1Alx1"=sample(6:10),"Peter"=sample(11:15))

它会返回一个示例表:

  Alex X1Alx1 Peter
1    2       8    15
2    3       7    12
3    5       6    14
4    1      10    11
5    4       9    13

我想通过从标题中选择特定关键字来提取新表。例如,我只想从标题中提取带有关键字“Al”的新表,新表应如下所示:

  Alex X1Alx1 
1    2       8   
2    3       7    
3    5       6   
4    1      10   
5    4       9   

我知道有一种方法可以使用 %in% 来选择一个变量,但是如何使用标题中的关键字提取所有数据?

【问题讨论】:

  • dplyr::select(x, contains("Al")).
  • 我有错误> eval(expr, envir, enclos) 中的错误:找不到函数“contains”
  • 更新你的dplyr包,最新版本自带功能。

标签: r header


【解决方案1】:

我们可以从base R使用grep

x[grep("Al", names(x))]
#      Alex X1Alx1
#1    2      8
#2    3      7
#3    5      6
#4    1     10
#5    4      9

【讨论】:

  • 谢谢,它有效。再问一个问题,多重条件怎么办?
  • @Alex 这取决于您的情况。假设你有AlBl 然后x[grep("Al|Bl", names(x))]
猜你喜欢
  • 2014-01-04
  • 2020-08-01
  • 1970-01-01
  • 2012-12-18
  • 2020-09-17
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多