0
他のデータセットの列のクラスと一致するように、データセット内の変数のクラスを変更する関数を記述しようとしています。R内の列のクラスを他のデータセットのクラスと一致するように変更する機能
たとえば、クラスファクタとしてAという名前の列を持つデータセット1と、クラス文字を持つAという名前の列を持つデータセット2がある場合、列Aのクラスを変更したいデータセット2を因数分解する。
私はコードを持っていますが、なぜそれがクラスを変更できないのか分かりません。あなたは何か考えていますか?
change_class2=function(predict_set,train_set){
col_drop=c()
for(column in colnames(predict_set)){
if(!column %in% colnames(train_set))
{col_drop=c(col_drop,column)}
v=grep(column, colnames(predict_set))
w=grep(column, colnames(train_set))
if((class(predict_set[,v])!=class(train_set[,w]))*(is.factor(train_set[,w]))==1){
predict_set[,v]=factor(predict_set[,v])}
else if((class(predict_set[,v])!=class(train_set[,w]))*(is.character(train_set[,w]))==1){
predict_set[,v]=as.character(predict_set[,v])}
else if((class(predict_set[,v])!=class(train_set[,w]))*(is.numeric(train_set[,w]))==1){
predict_set[,v]=as.numeric(predict_set[,v])}
else if((class(predict_set[,v])!=class(train_set[,w]))*(is.integer(train_set[,w]))==1){
predict_set[,v]=as.integer(predict_set[,v])}
else{
predict_set[,v]=predict_set[,v]}
} }
それは動作しますが、多くの感謝! – Oolis
@Oolisがお手伝いしてうれしい!偉大な答えを受け入れることができたら – Paolo