Давайте попробуем с некоторым примером набора данных, избегая использования имен функций в качестве переменных, идентификатор - это функция, поэтому:
library(randomForest)
library(Seurat)
CountsMatrix = pbmc_small[["RNA"]]@data
ident = factor(as.numeric(Idents(pbmc_small)==1))
Просто поместите его:
fit = randomForest(ident ~ .,data=cbind(ident,counts))
Error in eval(predvars, data, env) : object 'HLA-DRA' not found
Здесь мы используем make.names как у вас:
counts <- t(as.matrix(CountsMatrix))
names(counts) <- make.names(names(counts))
У вас есть матрица, names () не работает. Мы можем посмотреть на это:
head(names(counts))
[1] NA NA NA NA NA NA
Это имена столбцов, которые вам нужно исправить:
colnames(counts) <- make.names(colnames(counts))
smp_size <- floor(nrow(counts)*0.7)
train_ind <- sample(c(1:nrow(counts)), smp_size)
x_train <- counts[train_ind,]
x_test <- counts[-train_ind,]
y_train <- ident[train_ind]
y_test <- ident[-train_ind]
train_set <- cbind(data.frame(Identity = y_train), as.data.frame(x_train))
forest <- randomForest(Identity ~., data = train_set)
Или вы можете просто сделать:
forest <- randomForest(x=x_train,y=y_train)