2016-07-25 49 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