为什么我在 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
。
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
。