如何使用行标题列表通过rownames对矩阵进行子集化

时间:2014-04-08 16:26:05

标签: r list submatrix

我有一个名单(mylist)列表。这个名称列表与(更大)文件中的一些行名称一致,后者还包含其他数据列(bigfile)。如何在' bigfile'中提取行?与' mylist'?

中的名称匹配

3 个答案:

答案 0 :(得分:1)

值得一看的好地方是Hadley's page on subsetting in R

就问题的具体答案而言,我们假设您有一个原始的rownames列表,您希望对其进行分组,称为“mylist'”。您可以执行以下操作:

index <- row.names(bigfile)  %in% mylist[,1] 

这应该给出一个布尔表达式,它与bigfile中的行数一样长。

编辑:您还可以查看following Stackoverflow post which nicely addresses the problem

答案 1 :(得分:0)

# collect the names from the bigfile
BigFileNames <- colnames(bigfile)

# find the intersect between your list and the list of names from Bigfile
common <- intersect(BigFileNames, myListNames)

# extract info from dataframe 
infoFromCommon <- bigfile[,match(common, myListNames)]

答案 2 :(得分:0)

提取具有给定行名的矩阵子集。在片段下方,从用户矩阵中提取子集,其中行名与从数据帧中提取的给定用户列表匹配activity_data_t

r_users =用户[行名(用户)%in%唯一(activity_data_t [activity_data_t $ role_id == target_latest_role,“ user_id”]),]