R语言运行代码提示unexpected '}' in " }"错误如何修复
报错原因
你遇到的Error: unexpected '}' in " }"语法错误,直接诱因是R的语法规则要求:if关键字后的判断条件必须放在圆括号()中。你代码里写的if i == 'F'没有给判断条件加括号,R解析器无法正确识别语句结构,读到后续的大括号时就会抛出意外符号的报错。
除此之外你的代码还有一处逻辑问题:R中append()函数不会原地修改传入的向量,必须把函数返回的结果重新赋值给原变量,否则即使语法修正,循环执行完Gender还是初始的NULL,不会保存任何生成的值。
修正后可正常运行的代码
C <- rep(c('F','M'), each = 3, times = 4) Gender <- NULL for (i in C) { # 给if判断条件补充圆括号 if (i == 'F'){ # 将append返回的新向量重新赋值给Gender Gender <- append(Gender, values = 'Female') } else { Gender <- append(Gender, values = 'Male') } }
更简洁的R风格实现
这类固定值映射的场景不需要写for循环,用向量化操作代码更短、运行效率更高:
# 方法1:用ifelse向量化判断 Gender <- ifelse(C == 'F', 'Female', 'Male') # 方法2:用命名向量匹配 # label_map <- c(F = "Female", M = "Male") # Gender <- unname(label_map[C])
内容的提问来源于stack exchange,提问作者virgin technician
相关产品推荐
相关产品推荐

