2017-06-08 5 views
-1

データフレームdfがあります。これは次のとおりです。左側は行名で、第1列は対応する値です。データフレームの行名を含むベクトルに基づいてデータフレームの値を抽出する方法は?

   v1 
a177:a1297 0.1 
a177:a842 0.2 
a177:a796 0.4 
a24:a1437 0.3 
a24:a1256 0.6 
a24:a762 0.7 

私はdfの行名である文字のベクトルを持っています。

df["a177:a1297",] 
    [1] 0.1 

今、私はdfnames

に基づいて dfのすべての値を抽出したい:ベクトルは、私は特定の行名に基づいて一つの値を抽出する場合、それは次のようになり dfnames

str(dfnames) 
    chr [1:5] "a177:a1297" "a177:a842" "a177:a796" "a24:a1437" "a24:a1256" "a24:a762" 

です

df[dfnames,] 
    [1] NA NA NA NA NA NA 

に基づいてdfの値を抽出する方法を教えてもらえますか? row namesdf

+1

が、それは私のために動作します。 \ n [1] 0.1 0.2 0.4 0.3 0.6 0.7' –

+1

文字列を渡すと問題が再現できます。次の例を試してください: 'df1 < - mtcars [1:10、1:3]; myRows < - c( "Valiant"、 "Duster 360"); df1 [myRows、] ' – zx8754

+1

可能な重複:https://stackoverflow.com/questions/23652566/how-can-i-select-a-row-by-row-name-in-a-subsetted-data-frame- in-r – zx8754

答えて

2

あなたが行うことができます奇妙な

df[which(row.names(df) %in% dfnames),] 
関連する問題