ifelse之后'对象长度不是短对象长度的倍数'

时间:2016-07-14 09:45:41

标签: r if-statement

我已经完成了其他Q&至于此错误但仍然无法解决我的问题。

我有两个数据框,类似于:

partID <- c('partA', 'partB', 'partC')
model <- c('model1', 'model1', 'model2')
dfOne <- data.frame(partID, model)
partID <- c('partC', 'partA', 'partA', 'partB', 'partC', 'partX')
dfTwo <- data.frame(partID)
dfTwo$model <- 'diffModel'

我正在尝试将dfTwo中的模型替换为与partID匹配的dfOne中的模型。我试过用ifelse做这个:

dfTwo$model <- ifelse(dfTwo$partID == dfOne$partID, 
                  dfOne$model, dfTwo$model)

然而,我收到错误:

  

“警告信息:1:在is.na(e1)| is.na(e2):更长的对象   长度不是较短物体长度的倍数2:In   ==.default(dfTwo $ partID,dfOne $ partID):较长的对象长度是   不是较短物体长度的倍数“

我认为这可能是因为dfTwo中的模型是dfOne中的一个角色和模型是一个因素,但我跑完后仍然保持相同:

dfTwo$model <- as.factor(dfTwo$model)

我认为它是因为观察数量不同但我不太确定如何处理这个问题,我不会覆盖那些没有partID匹配的模型。

我仍然很擅长使用R。

非常感谢任何帮助。

0 个答案:

没有答案