[英]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.