2

我有一个在 Basic 上编写的脚本,它获取输入 CSV 文件并计算输入数据随机拆分之间的冲突。这个脚本在这里。我需要在 R 上重新实现它。我写过这样的脚本。是输入数据。

但在条件

if(nentries==nrows*ncolumns)    
{  
    print("Columns, rows, and entries check; we're good to go.")  
}  
else  
{  
    print("Columns, rows, and entries don't check; please look at your data file to make sure each line has equal no. of entries.")  
}

出现错误

source("path\\to\\script.r")
error in source("path\\to\\script.r") : 
D:\projects\basicToR\target.r:19:1: Unexpected 'else'
18:         }
19: else
    ^ 

为什么这里有错误?R文件中还有其他错误吗?

更新 我忘记写关于错误的问题

seq.default(1, firstsofar, 1) 中的错误:无效的符号“by”参数

在代码片段中

for (q in seq(1,firstsofar,1)) {
    if( randnum[i]==randnum[q]) {taken="yes"}
}
4

2 回答 2

3

重写为

if(nentries==nrows*ncolumns)    {
     print("Columns, rows, and entries check; we're good to go.")
}else{
     print("Columns, rows, and entries don't check; please look at your data file to make sure each line has equal no. of entries.")
}

您需要将 else 与“if”的右大括号放在同一行

来自R 语言定义

else 子句是可选的。语句 if(any(x <= 0)) x <- x[x <= 0] 是有效的。当 if 语句不在块中时,else(如果存在)必须与语句 2 的结尾出现在同一行。否则 statement2 末尾的新行完成 if 并产生一个被评估的语法完整语句。一个简单的解决方案是使用括在大括号中的复合语句,将 else 与标记语句结束的右大括号放在同一行。

于 2013-02-02T17:36:55.570 回答
2

由于我不完全理解的原因,当 Relse与之前的右花括号不在同一行时,R 会发疯。尝试:

if(nentries==nrows*ncolumns)    {
     print("Columns, rows, and entries check; we're good to go.")
}else{
     print("Columns, rows, and entries don't check; please look at your data file to make sure each line has equal no. of entries.")
}
于 2013-02-02T17:37:15.693 回答