繁体   English   中英

为什么我在 R 中得到 && 运算符的“解析错误”?

[英]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") &&
                                          ^

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

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

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

) for if&&之前结束

 if (ed_error[row, 1] == "general")

IE

> 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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM