如何对数据框进行子集化,以便仅包含包含具有在其他行中显示特定次数的值的列的行.
举例来说,如果我有一个标有食品一栏,我将如何筛选出有食物,显示了小于5倍,在整个数据帧中的所有行?
这是一个简单的例子:
dat <- data.frame(x=runif(50),y=sample(letters,50,replace = TRUE))
dat[dat$y %in% names(table(dat$y))[table(dat$y) > 2],]
Run Code Online (Sandbox Code Playgroud)
这将选择包含出现两次以上字母的所有行.
这是另一种方法(可能更清洁)使用plyr.
ddply(dat, .(y), subset, length(x) > 2)
Run Code Online (Sandbox Code Playgroud)