首页 > 解决方案 > 仅计算以 .... 开头的行(在 R 中)

问题描述

我有一个数据框,我想只计算以 R34_ 开头的行及其列 x == 3。

              x
R34_sdasdsa   3
R34_sdasdsa   3
R36_sdasdsa   1

标签: rdataframe

解决方案


假设R34_实际上是您的数据框的行名(让我们称之为df)并且您还有其他列x,您可以使用方括号对数据框进行子集化,然后使用nrow()

new_df <- df[(startsWith(rownames(df), "R34_")) & (df$x == 3), ]
nrow(new_df)
# [1] 2

否则,如果x是您的数据框的唯一列,则上述结果将带给您,NULL因为子集操作将返回向量而不是数据框。在这种情况下,您应该尝试length()

length(df[(startsWith(rownames(df), "R34_")) & (df$x == 3), ])
# [1] 2

推荐阅读