【发布时间】:2021-06-16 20:30:59
【问题描述】:
我正在尝试在大型数据集上计算 R 中满足多个条件(不同列中的条件)的行数,但在获得我想要的结果时遇到了一些问题。
示例数据框:
LU <- c("A", "A", "P", "P", "A", "G", "A", "G")
Type <- c("one", "one", "one", "three", "two", "three", "one", "two")
Style <- c("C-acq", "C-acq", "C-acq", "N-acq", "C-acq", "Ox", "C-acq", "N-acq")
df <- data.frame(LU, Type, Style)
要计算苹果的数量,即 num 1 和位置 A-01,我试过这个:
length(intersect(which(df1['LU']=="A", which(df['Type']=="one"))))
但不能让它工作/得到一个错误,说“选择函数'which'的方法:选择了未定义的列”。 sum 函数适用于这个模拟数据,但是当我尝试将它应用到我自己的数据时,它似乎只是将符合我列出的任何标准的行数相加(而不是根据我应用的标准)或说不适用(我知道这是不正确的)。
我使用过的求和函数(适用于这个迷你数据,但不适用于我的数据):
sum(df1$LU == "A" & df1$Type == "one" & df1$Style == "C-acq")
还有其他方法可以计算满足多个条件的行数吗? (不知道如何获得计数功能来做到这一点)。我认为我的数据的一个问题是行可能有 NA 值,这可能会干扰 sum 函数。
我知道有很多关于此类问题的问题(下面列出的其他线程),所以很抱歉,如果这是一个多余的问题,但找不到适合我的数据的答案。感谢您的帮助!
用表格输出计数
【问题讨论】: