为什么我在 R 中为 && 运算符得到 "Error in Parse"?

Why do I get an "Error in Parse" for && operator in R?

ed_error 是一个包含两列的数据框。 我想逐行遍历所有行并将 1 加到我创建的变量中,前提是第一列中值的字符串名称等于“general”并且第二列中的整数值等于 1。

这是数据的样子。

代码:

general_list <- 0

for (row in 1:nrow(ed_error)) {
    if (ed_error[row, 1] == "general") && (ed_error[row, 2] == 1) {
        general_list <- general_list + 1 }
                               }

错误:

Error in parse(text = x, srcfile = src):
5: for (row in 1:nrow(ed_error)) {
6:     if (ed_error[row, 1] == "general") &&
                                          ^

if)&&

之前结束
 if (ed_error[row, 1] == "general")

> if('a' == 'b') && ('c' == 'd')
Error: unexpected '&&' in "if('a' == 'b') &&"

而是

general_list <- 0
for (row in 1:nrow(ed_error)) {
if(ed_error[[1]][row] == "general" && ed_error[[2]][row] == 1) {
     general_list <- general_list + 1
    }
}

我们也可以使用矢量化选项

general_list <- nrow(subset(ed_error, education %in% 'general' & error %in% 1))

在 R 中,大多数事情不需要显式 for 循环。这种比较可以用向量化的方式来完成,用sum来计算满足条件的次数。

general_list <- sum(ed_error$education == "general" & ed_error$error == 1)

如果数据中有 NA 个值,您可以在 sum 中添加 na.rm = TRUE