R 寻找仅当一列的所有唯一值都可用于另一列的唯一值时才能从数据集提取数据的代码

R 寻找仅当一列的所有唯一值都可用于另一列的唯一值时才能从数据集提取数据的代码,r,R,我在R中寻找一个代码,只有当一列的所有唯一值都可用于另一列的唯一值时,我才能从数据集中提取数据。例如: Student Month Total a Jan 58 b Jan 48 c Jan 89 a Feb 58 b Feb 48 a Mar 58 b Mar 48 c Ma

我在R中寻找一个代码,只有当一列的所有唯一值都可用于另一列的唯一值时,我才能从数据集中提取数据。例如:

Student  Month      Total
a        Jan        58
b        Jan        48
c        Jan        89
a        Feb        58
b        Feb        48
a        Mar        58
b        Mar        48
c        Mar        89
该代码仅能提取所有月份分数可用的学生的数据。换句话说,如果所有月份的标记都不可用,它应该删除数据

谢谢!
Kalo

我们可以使用
数据表。将“data.frame”转换为“data.table”(
setDT(df)
),按“Student”分组,

使用OP显示的示例,只有3'个月的数据,因此应该是

setDT(df)[, if(uniqueN(Month)==uniqueN(df[["Month"]])) .SD , by = Student]
#    Student Month Total
#1:       a   Jan    58
#2:       a   Feb    58
#3:       a   Mar    58
#4:       b   Jan    48
#5:       b   Feb    48
#6:       b   Mar    48
数据
df我们可以使用
data.table
。将“data.frame”转换为“data.table”(
setDT(df)
),按“Student”分组,

使用OP显示的示例,只有3'个月的数据,因此应该是

setDT(df)[, if(uniqueN(Month)==uniqueN(df[["Month"]])) .SD , by = Student]
#    Student Month Total
#1:       a   Jan    58
#2:       a   Feb    58
#3:       a   Mar    58
#4:       b   Jan    48
#5:       b   Feb    48
#6:       b   Mar    48
数据
df高。。谢谢你的快速回复。这真的很有帮助。获取上述代码帮助的最佳方式是什么。。或者在R?Hi.中的基本功能。。谢谢你的快速回复。这真的很有帮助。获取上述代码帮助的最佳方式是什么。。还是R中的基本函数?
df <- structure(list(Student = c("a", "b", "c", "a", "b", "a", "b", 
"c"), Month = c("Jan", "Jan", "Jan", "Feb", "Feb", "Mar", "Mar", 
"Mar"), Total = c(58L, 48L, 89L, 58L, 48L, 58L, 48L, 89L)),
.Names = c("Student", "Month", "Total"), class = "data.frame", 
row.names = c(NA, -8L))