我有一个数据框架' 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
答案 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是一个更好的选择。