2017-06-08 23 views
-1

我有一个数据帧df,如下所示。左侧是行名称,第一列是相应的值。如何基于包含数据帧的行名称的向量提取数据帧的值?

   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的行名向量。矢量是dfnames

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

如果我提取基于特定行名称一个值,这将是:

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

现在我想提取基于dfnames

的的 df所有值
df[dfnames,] 
    [1] NA NA NA NA NA NA 

谁能告诉我如何提取基于vector的值df,其中包含row names of df

+1

这是奇怪的,它为我工作。我得到'> df [dfnames,] \ 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),] 
相关问题