2011-04-20 78 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

相關問題