【问题标题】:How to extract values of a dataframe based on a vector containing the row names of the dataframe?如何根据包含数据框行名的向量提取数据框的值?
【发布时间】:2017-06-08 20:45:30
【问题描述】:

我有一个数据框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

谁能告诉我如何根据包含dfrow namesvector 提取df 的值?

【问题讨论】:

  • 这很奇怪,它对我有用。我得到> df[dfnames, ] \n [1] 0.1 0.2 0.4 0.3 0.6 0.7
  • 传递字符串应该可以,请让您的问题可重现。试试这个例子:df1 <- mtcars[1:10, 1:3]; myRows <- c("Valiant", "Duster 360"); df1[myRows, ]
  • 这就是我想要的。非常感谢。

标签: r


【解决方案1】:

你可以这样做:

df[which(row.names(df) %in% dfnames),]

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多