【问题标题】:R: How to get many (~2000) rows from an r data frame by row nameR:如何通过行名从 r 数据帧中获取许多(~2000)行
【发布时间】:2013-07-19 08:20:27
【问题描述】:

我有一个带有列标题和行名的大型数据框,即

CountTable = read.table(Data, header=TRUE, row.names=1)

头(计数表)

        S1    S2    S3
Row1     9     8     2 
Row2   268   193   282
Row3   635   631   568
Row4     0     2     0
Row5    15     8    10
Row6   416   321   350
... etc

我想根据名称从中检索行。如果我只有几个要检索,我会使用方括号函数,例如

CountTable[c("Row1", "Row3", "Row6",]

        S1    S2    S3
Row1     9     8     2 
Row3   635   631   568
Row6   416   321   350

但由于我的数据框有 >20,000 行,我想从中检索 ~2000 行,这不是很实用。我最好的想法是,是否有办法从另一个文件(例如,names.txt/.cvs)导入约 2000 个名称并创建索引向量,例如

[1] Row1 Row3 Row6 ... Row2000

这可用于指定在创建我的数据子集时要检索哪些行?

任何解决方案将不胜感激!

【问题讨论】:

    标签: r row subset


    【解决方案1】:

    如果您基于行名进行子集化,您应该按照

    的方式做一些事情
    CountTable[rownames(CountTable) %in% c("row1", "row2", "row3"), ]
    

    要构造行名向量,可以使用

    paste0("row", 1:10)
    [1] "row1"  "row2"  "row3"  "row4"  "row5"  "row6"  "row7"  "row8"  "row9" 
    [10] "row10"
    

    【讨论】:

    • 不需要%in%。默认情况下,行名对于选择向量是可以接受的,所以在rows <- paste0(...) 之后可以输入:CountTable[rows, ]
    • 已解决 > TESTV is.character(TESTV) >paste0(TESTV,1:10) >CountTable[TESTV,] 谢谢非常喜欢!
    • 我的尝试是明确的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多