2017-04-14 13 views
0

私は行「クラス」は「昆虫」(すなわち、この例では唯一の列AとBは、この条件を満たすことで、このデータセットから列のみを選択したい、このRで選択した行の特定の値を含む列を選択する方法は?

Site <- c(1,2,3,4,5,6,7,8,9,10,"kingdom","phylum","class") 
A <- c(0,0,1,2,4,5,6,7,13,56,"Eukaryota","Arthropoda","Insecta") 
B <- c(1,0,0,0,0,4,5,7,7,8,"Eukaryota","Arthropoda","Insecta") 
C <- c(2,3,0,0,4,5,67,8,43,21,"Eukaryota","Arthropoda","") 
D <- c(134,0,0,2,0,0,9,0,45,55,"Eukaryota","Arthropoda","Arachnida") 
site.species.sample <- data.frame(Site,A,B,C,D) 

のように見えるのデータセットを持っています)。

site.species.sample <- site.species.sample[,site.species.sample["class",]=="Insecta"] 

しかしエラーました:私はこのコードを試してみました

Error in `[.data.frame`(site.species.sample, , site.species.sample["class", : 
undefined columns selected 

は、だから私はそれをどのように行うのですか?おかげで以下

+0

であるあなたが同じ列に文字や数値データを保持する理由はありますか? –

+0

はい、それは私のデータセットの形式です –

答えて

1

はオプション

site.species.sample[,c(TRUE,subset(site.species.sample[,-1],site.species.sample$Site=="class")=="Insecta")] 

Site   A   B 
1  1   0   1 
2  2   0   0 
3  3   1   0 
4  4   2   0 
5  5   4   0 
6  6   5   4 
7  7   6   5 
8  8   7   7 
9  9   13   7 
10  10   56   8 
11 kingdom Eukaryota Eukaryota 
12 phylum Arthropoda Arthropoda 
13 class Insecta Insecta 
+0

[、-1]はどういう意味ですか?ありがとう –

+0

最初の列はサブセットから除外され、いずれの場合も確実に選択されます。そして、 'c(TRUE、' TRUE'を最初の要素としてベクトルの最初の要素として挿入すると –

+0

ああ、ありがとう、ありがとう! –

関連する問題