我有一个长格式不平衡的纵向数据.我想排除所有不包含完整信息的案例.我指的是所有不重复8次的情况.有人可以帮我找到解决方案吗?
下面是一个例子:我有三个科目{A,B和C}.我有8个A和B的信息,但只有2个用于C.如何根据少于8次重复测量的信息删除存在C的行?
temp = scan()
A 1 1 1 0
A 1 1 0 1
A 1 0 0 0
A 1 1 1 1
A 0 1 0 0
A 1 1 1 0
A 1 1 0 1
A 1 0 0 0
B 1 1 1 0
B 1 1 0 1
B 1 0 0 0
B 1 1 1 1
B 0 1 0 0
B 1 1 1 0
B 1 1 0 1
B 1 0 0 0
C 1 1 1 1
C 0 1 0 0
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
假设你的变量名V1,V2...等等,这里有一个方法:
temp[temp$V1 %in% names(which(table(temp$V1) == 8)), ]
Run Code Online (Sandbox Code Playgroud)
本table(temp$V1) == 8场比赛中的值V1列中恰好有8例.该names(which(...部件创建了一个我们可以匹配的基本字符向量%in%.
而另一个:
temp[ave(as.character(temp$V1), temp$V1, FUN = length) == "8", ]
Run Code Online (Sandbox Code Playgroud)