키 값 (userid)이있는 user_role이라는 데이터 프레임이 있습니다. 나는이 사용자 ID 중 얼마나 많은 수가 단지 role이라는 범주 형 변수에 하나의 값만을 갖고 있는지보고 싶습니다. 여기 R 얼마나 많은 사용자가 하나의 값만 가지고 있는지 찾는 방법
몇 가지 샘플 데이터입니다 :userid role
ame1 programmer
ame1 programmer
ame1 analyst
cal5 programmer
cal5 programmer
up2 sales
하나 개의 역할이 있었다 그러나 더 이상의 역할 값을 가지고 있기 때문에 출력 데이터 프레임에 ame1하지 않아야하기 때문에 출력 데이터 세트에서 수 cal5 싶습니다 .
("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 모두 출력에 표시 갖고 싶어하지 않습니다. 이상적으로, 나는 2 개 이상의 행을 가진 사용자 만 포함하는 절을 가질 수 있기를 원합니다.
감사
귀하의 마지막 코멘트에 동일한 모든 사람들은 나를 혼란. 원래'count (distinct role) '를 원했을 것이라고 생각했지만'up2'를 제외시킬 2 행 이상을 언급 했습니까? – 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]' –