假设这个数据框:
country <- c('USA', 'USA', 'USA', 'USA', 'USA', 'UK', 'UK', 'UK', 'Canada')
number <- c(1:9)
df <- data.frame(country, number)
Run Code Online (Sandbox Code Playgroud)
我希望能够仅对国家计数大于 4 或小于 2 的行进行子集化。因此,在这种情况下,它将返回:
country number
USA 1
USA 2
USA 3
USA 4
USA 5
Canada 9
Run Code Online (Sandbox Code Playgroud)
我能够使它与这个一起工作:
totalcounts <- filter(count(df, country), n>4 | n<2) # giving me a df of the country and count
for (i in nrow(totalcounts)){
# code in here that rbinds rows as it matches
}
Run Code Online (Sandbox Code Playgroud)
但我觉得必须有一个更简单的方法。我还没有掌握 sapply 之类的东西,所以我觉得我在这里错过了一些东西。似乎我要走了很长一段路,并且已经有一些东西可以做到这一点。
我试图更好地理解 Oracle SQL 在执行代码时如何确定不同值。我希望它一次只对一列起作用,然后将所有重复项放在一边,然后仅在这些行上比较下一列。这将通过验证下一列是否有任何重复项来继续,并且每次只有继续具有重复项的行才会进入下一步。这准确吗?此外,是否有一种方法可以用来确定从哪一列开始?有些列很可能有重复项,而其他列可能是不应包含任何重复项的键(假设联接或联合上没有发生重复)。