我有一個名爲user_role的數據框,其中有一個鍵值(用戶ID)。我想看看有多少這些用戶標識只有一個用於稱爲角色的分類變量的值。R如何找到有多少用戶只有一個值
下面是一些樣本數據:
userid role
ame1 programmer
ame1 programmer
ame1 analyst
cal5 programmer
cal5 programmer
up2 sales
我想cal5是在輸出數據集中,因爲世界上只有一個角色,但ame1不應該在輸出數據幀,因爲它有一個以上的角色值。
我已經試過這樣的事情:
("select userid, role, count(*) from user_role group by userid, role having count(*) == 1")
但只有讓用戶用1行或角色值。
("select userid, role, count(*) from user_role group by userid, role having count(*) > 1")
沒有得到我只有一個角色價值,即使他們有多個行
我想有兩個cal5和UP2輸出顯示。理想情況下,我希望能夠有一個條款,我只包括具有兩行或更多行的用戶。
感謝
你最後的評論讓我困惑。本來我以爲你只是想'count(獨特的角色)',但是你提到2行或更多的行,這將排除'up2'正確? – sgeddes
是的,如果我可以指定一個人不得不包含在輸出數據框中的最小行數,那就太好了。這有幫助嗎?但是他們仍然不得不在兩行的最小值中只有1個值。 – Jazzmine
'table(unique(df1)$ userid)'會給你每個用戶'userid'唯一'role'的數量。或者使用'data.table',你可以添加條件'library(data.table); setDT(df1)[,if(uniqueN(role)== 1&.N> 1).SD,by = userid]' –