我有一个名为myTable
(输入)的表:
user_name session_num
1 "Joe" 1
2 "Tom" 2
3 "Fred" 1
4 "Tom" 1
5 "Joe" 2
6 "John" 1
我想知道有多少user_id
只有 session_num = 1
(输出):
user_name session_num
1 "Fred" 1
2 "John" 1
答案 0 :(得分:8)
以下是使用data.table
library(data.table)
setDT(df)[, if(all(session_num == 1)) .SD, by = user_name]
# user_name session_num
# 1: Fred 1
# 2: John 1
另一个选择是尝试反连接
df[session_num == 1][!df[session_num != 1], on = "user_name"]
# user_name session_num
# 1: Fred 1
# 2: John 1
答案 1 :(得分:5)
与dplyr
的可比解决方案:
library(dplyr)
myTable %>%
group_by(user_name) %>%
filter(all(session_num == 1))
给出:
user_name session_num
(fctr) (int)
1 Fred 1
2 John 1
答案 2 :(得分:3)
或者,我们可以使用1
R简单地排除会话编号不是base
的所有用户。
# User's with session number other than 1
two <- myTable$user_name[myTable$session_num != 1]
# Exclude them
myTable[!myTable$user_name %in% two,]
# user_name session_num
#3 Fred 1
#6 John 1
答案 3 :(得分:0)
这是一个2行答案:
session_num==1
首先它会查看谁只在数据集中一次,然后再查看那些while($row2=mysqli_fetch_array($result2))
{
$first=$row2['MDid'];
$second=$row2['MD_FullName'];
$data=array($first=>$second);
}
var_dump($data);
的子集。