r - R代码循环错误

标签 r loops error-handling

我在运行R脚本时遇到一些问题:

sensoren <- read.csv("C:/..../sensors.csv") 
messung <- read.table("C:/.../os.log")

s1 <- messung$V2
s2 <- messung$V4
s3 <- messung$V6
s4 <- messung$V8

i <- 1; j <- 1
while (i <= nrow(messung)){
+   while (j <= nrow(sensoren)){
+       if (s2[i] == sensoren[j,1] && s3[i] == sensoren[j,2] && s4[i] == sensoren[j,3]){ 
+           print(sensoren[j,5][drop=TRUE]); i <- i + 1; j <- 1;} else {j <- j + 1;}}}  

运行脚本我总是会收到错误消息:+ while(j <= nrow(sensoren)){
一元运算符的无效参数

希望有人可以帮助我,谢谢!

编辑:

我更改了代码,现在看起来像这样:
while (i <= nrow(messung)){
+   while (j <= nrow(sensoren)){
+       if (c(s2[i],s3[i],s4[i]) == c(sensoren[j,1], sensoren[j,2], sensoren[j,3])){ 
+           print(sensoren[j,5][drop=TRUE]); i <- i + 1; j <- 1;} else {j <- j + 1;}}}  

但是还是一样的错误信息...

最佳答案

看起来nrow(sensoren)返回NULL,而当nrow()的参数不是矩阵或数据帧时,nrow()会执行此操作。检查文件是否按预期读取。

另外,我很高兴您没有提出这个问题,但是使用嵌套循环并不是一种非常“R”的处理方式,因为R在这些操作上非常缓慢。您可能想阅读R中的merge(),apply()和向量化。

关于r - R代码循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787435/

相关文章:

r - 从方阵中删除总和为零的列以及相应的行

mysql - R 库 RMySQL 无法启动

python - 使用 BeautifulSoup 迭代 XML 以提取特定标签并存储在变量中

java - Java 新手,学习很快,但不明白为什么我的 for 循环不会打印

python - 在 python 中实际使用的 SyntaxError 内置函数是什么?

php - 宏大、统一的 PHP 错误处理理论

r - 采样 - 限制每个元素被使用的次数

python - 我怎样才能让这两个线程一个接一个地不断运行python?

wcf - WCF中的日志记录错误-引发异常时,日志文件中不存储任何内容

r - 创建一个新列作为列表返回