我有一个包含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()函数找到一个解决方案,但我不知道该如何实现。
最佳。
答案 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)