错误,while循环中的警告

时间:2014-09-14 04:58:02

标签: r while-loop dataframe

我有一个数据框架' clean'它有2列。仅用于处理一列ID' ID'是相关的。此列包含多次重复的数字。所需的输出是一个新的数据框,其中两列具有唯一ID,另一列具有唯一ID。

代码运行正常但是当我执行时,我得到50条警告消息如下:

50: In while (clean$ID == x) { ... :
  the condition has length > 1 and only the first element will be used

以下是我的代码。有人可以帮助理解并解决此错误吗?

  j <- unique(clean$ID)
  count=0
  for (x in j)
   {
     while (clean$ID==x)
      {
       count<-count+1
       }
    result<-append(result,x,count)
   }
 result

1 个答案:

答案 0 :(得分:1)

首先,我将解决错误。请注意,clean$ID是一个类似1:5的向量,您要将其与单个值进行比较,例如3,当您执行1:5==3时,您会得到一个逻辑值向量。所以当你说while(1:5==3)你是什么意思?你想要any值是真的,还是想在all值为真时重复?警告表示评估仅基于与(1:5)[1]==3

等效的第一个值完成

但正如@arkun指出的那样,你的代码是一个很难实现目标的策略。

as.data.frame(table(clean$ID))
使用每个ID值的计数获取data.frame是一个更好的选择。