gpt4 book ai didi

r - 计算符合条件的行数

转载 作者:行者123 更新时间:2023-12-03 08:36:28 26 4
gpt4 key购买 nike

我正在 R 中寻找一个与此 SQL 语句等效的命令。我希望这是一个非常简单的基本解决方案,而不使用复杂的函数或 dplyr 类型的包。

Select count(*) as number_of_states 
from myTable
where sCode = "CA"

所以基本上我会计算与我的 where 条件匹配的行数。

我已经将一个 csv 文件作为数据框导入到 mydata 中。到目前为止,我已经尝试了这些但无济于事。
  • nrow(mydata$sCode == "CA") ## ==>> returns NULL
  • sum(mydata[mydata$sCode == 'CA',], na.rm=T) ## ==>> gives Error in FUN(X[[1L]], ...) : only defined on a data frame with all numeric variables
  • sum(subset(mydata, sCode='CA', select=c(sCode)), na.rm=T) ## ==>> FUN(X[[1L]], ...) : only defined on a data frame with all numeric variables
  • sum(mydata$sCode == "CA", na.rm=T) ## ==>> returns count of all rows in the entire data set, which is not the correct result.

  • 以及上述样本的一些变体。任何帮助,将不胜感激!谢谢。

    最佳答案

    mydata$sCode == "CA"将返回一个 bool 数组,带有 TRUE值满足条件的任何地方。为了显示:

    > mydata = data.frame(sCode = c("CA", "CA", "AC"))
    > mydata$sCode == "CA"
    [1] TRUE TRUE FALSE

    有几种方法可以解决这个问题:
  • sum(mydata$sCode == "CA") ,正如评论中所建议的;因为TRUE被解释为 1 和 FALSE为 0,这应该返回TRUE的数量向量中的值。
  • length(which(mydata$sCode == "CA")) ; which()功能
    返回满足条件的索引向量,
    其中的长度是 "CA" 的计数.

  • 编辑以扩展 #2 中发生的事情:
    > which(mydata$sCode == "CA")
    [1] 1 2
    which()返回一个向量,标识满足条件的每一列(在这种情况下,数据帧的第 1 列和第 2 列)。 length()这个向量的出现次数。

    关于r - 计算符合条件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195996/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com