【发布时间】:2015-01-28 15:24:51
【问题描述】:
我正在寻找与此 SQL 语句等效的 R 中的命令。我希望这是一个非常简单的基本解决方案,无需使用复杂的函数或 dplyr 类型的包。
Select count(*) as number_of_states
from myTable
where sCode = "CA"
所以基本上我会计算符合我的 where 条件的行数。
我已经将一个 csv 文件作为数据框导入到 mydata 中。到目前为止,我已经尝试了这些都无济于事。
nrow(mydata$sCode == "CA") ## ==>> returns NULLsum(mydata[mydata$sCode == 'CA',], na.rm=T) ## ==>> gives Error in FUN(X[[1L]], ...) : only defined on a data frame with all numeric variablessum(subset(mydata, sCode='CA', select=c(sCode)), na.rm=T) ## ==>> FUN(X[[1L]], ...) : only defined on a data frame with all numeric variablessum(mydata$sCode == "CA", na.rm=T) ## ==>> returns count of all rows in the entire data set, which is not the correct result.
以及上述示例的一些变体。任何帮助,将不胜感激!谢谢。
【问题讨论】:
-
sum(mydata$sCode == "CA") 应该可以工作。如果没有一个最小的可重现示例,我们将无能为力。
-
我认为选项 4 会起作用。前任。
dat <- data.frame(x=c("a", "b", NA)) ; sum(dat$x=="a", na.rm=T) -
“NROW”(大写字母)的使用适用于矢量,但它可能会产生误导,应在正确编码时避免使用。
-
@SteveKern:你要样本数据吗?
-
@user20650:你能澄清一下吗? x 在您的陈述中代表什么 - data.frame(x=c("a", "b", NA)) ; ?我认为每个语法都需要 c,“a”和“b”是状态代码,如“CA”和“WA”?
标签: r