R计算每行的值为=“ mq”的变量数

时间:2018-12-24 19:54:18

标签: r

我有一个包含70个变量的数据框,我想创建一个新变量,该变量计算每行中70个变量取值为“ mq”的出现次数。

我正在寻找这样的东西:

[ID] [Var1] [Var2] [Count_mq]
1.    mq    mq      2
2.    1     mq      1
3.    1      7      0

我找到了此解决方案:

count_row_if(“ mq”,DT)

但是它给了我一个带有整个数据帧的那些值的向量,计算起来很慢。

我想使用apply()函数找到一个解决方案,但我不知道该如何实现。

最佳。

2 个答案:

答案 0 :(得分:2)

您可以使用“应用”功能对现有数据框“ df”中的特定值进行计数,

df$count.MQ <- apply(df, 1, function(x) length(which(x=="mq")))

这里第二个参数是1,因为您要为每一行计数。您可以从https://www.rdocumentation.org/packages/base/versions/3.5.1/topics/apply

了解更多信息

答案 1 :(得分:0)

我假设数据集的名称为DT。我有点困惑您真正想要得到什么,但这就是我的理解。数据框由70列和许多行组成,其中一些行具有观察值'mq'。 如果我做对了,请参见下面的代码。

apply(DT, function(x) length(filter(DT,value=='mq')), MARGIN=1)