R:用指示值替换预测值
我有一个矩阵,它是对R:用指示值替换预测值,r,matrix,replace,machine-learning,subset,R,Matrix,Replace,Machine Learning,Subset,我有一个矩阵,它是对ID和Rating的19 mil预测观察值。我想替换实际评级中ID的预测评级 以下是我试图实现的目标的演示: 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") tra
ID
和Rating
的19 mil预测观察值。我想替换实际评级中ID
的预测评级
以下是我试图实现的目标的演示:
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")
train只需使用[]
括号和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
不过,请确保两个ID的顺序相同。
> 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