2011-04-20 74 views
9

我在R中工作,我有一个字符向量。我想通过字符串的第一个字母对这个向量进行分组。所以,例如,我怎样才能将矢量子集只返回矢量中以字母A开头的那些元素?子集向量由R中的第一个字母组成

回答

14

你可以使用grep:

vector = c("apple", "banana", "fox", "Actor") 
vector[grep("^[aA].*", vector)] 

[1] "apple" "Actor" 
+4

,或者在一个行:'grep的(“^ [AA ]。*“,vector,value = TRUE)' – 2011-04-20 01:27:20

+0

很好用!谢谢! – Pascal 2011-04-20 01:39:28

+0

是的,那也是:) – Greg 2011-04-20 01:39:28

7

你也可以使用substrtapply让所有类型的列表:

tapply(vector,toupper(substr(vector,1,1)),identity) 

$A 
[1] "apple" "Actor" 

$B 
[1] "banana" 

$F 
[1] "fox" 
+0

+1不错的一个...... – Andrie 2011-04-20 13:02:14

+1

或'split(vector,toupper(substr(vector,1,1)))'' – Marek 2011-04-20 13:26:56

相关问题