2013-12-02 5 views
0

У меня есть матрица, которая предсказала 19 миллионов предсказанных наблюдений ID и Rating. Я хочу заменить предсказанные Rating на ID, которые находятся в фактическом Rating.R: замена прогнозируемых значений на значения индикаторов

Вот демонстрация того, что я пытаюсь сделать:

train <- data.frame(1:10,c(1,2,NA,4,5,NA,7,8,NA,10)) 
names(train) <- c("ID", "Rating") 
pred <- data.frame(1:10, c(1,1,3,4,2,4,5,6,7,1)) 
names(pred) <- c("ID", "Rating") 

Я хочу, чтобы окончательный ПРЕД быть:

pred <- data.frame(1:10, c(1,2,3,4,5,4,7,8,7,10)) 
names(pred) <- c("ID", "Rating") 

Любые предложения?

Попытка:

ответ

2

Просто подмножество данных с помощью [] скобок и is.na.

> train$Rating[is.na(train$Rating)] = pred$Rating[is.na(train$Rating)] 
> train 
    ID Rating 
1 1  1 
2 2  2 
3 3  3 
4 4  4 
5 5  5 
6 6  4 
7 7  7 
8 8  8 
9 9  7 
10 10  10 

Или в другую сторону:

> pred$Rating[!is.na(train$Rating)] = train$Rating[!is.na(train$Rating)] 
> pred 
    ID Rating 
1 1  1 
2 2  2 
3 3  3 
4 4  4 
5 5  5 
6 6  4 
7 7  7 
8 8  8 
9 9  7 
10 10  10 
+0

убедитесь, что идентификаторы в таком же порядке, в обоих, хотя. – Ananta

Смежные вопросы