2016-07-25 52 views
-1

我有一个有多个列的数据框,我想在每列上应用不同的功能。带过滤器的列数

我的数据集的一个例子 -

enter image description here

我想计算列pq110a的count在qcountry2列(ME-墨西哥,BR-巴西,AR-阿根廷)提到的每一个国家。我在这里所面临的问题是,我必须在这些列上使用滤波器,例如用于样品患者本人want- pq110的

  1. 计数时的值是1和2(对某些患者)
  2. 计数pq110的当值为3(对于另一患者)
  3. 类似地,当值为6.
  4. 对于总患者,我希望总数为pq110。

输出我期待是 - Output

Similalry每个国家我想这个输出。

请建议我怎样才能做到这一点的其他专栏也countrywise。

谢谢!

+2

请阅读[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)以及如何给出[可重现的例子](http:// stackoverflow.com/questions/5963269)。这会让其他人更容易帮助你。 – zx8754

+0

请张贴您的示例数据和输出 –

+0

可能的重复[dplyr - 使用筛选与计数](http://stackoverflow.com/questions/26573285/dplyr-using-filter-with-count) – theArun

回答

0

我想你想要做的是计算'pq110'在不同'qcountry2'中具有相同值的列数。

所以我会尝试使用'tapply'将数据分成几个子集,然后使用'table'来计算每个不同值的列数。

tapply(my_data[,"pq110"], INDEX = as.factor(my_data[,"qcountry2"]),  function(x)table(x)) 
+0

谢谢张!但我期待着计算pq110,其值为1或3时将被视为第一条线,同样我也需要考虑不同的值来计算第二条线和第三条线。而这我必须为每个国家做,所以我想我必须为此做一些功能。 – Kavya