У меня есть два кадра данных.Одним из них является библиотека слов с соответствующим номером.Другой вопрос, у меня есть 3. Мои исходные данные имеют 2 миллиона строк в библиотеке и 1 миллион вопросов.Что касается того, почему я использую цикл для столбцов.У меня есть вопросы, почему первые два вопроса, имеющие номера, сортируются в команде слияния, тогда как вопросы, содержащие только слова, не сортируются.Любые причины, почему это может быть.У меня есть воспроизводимые данные, вероятно, много кода, но если вы запустите их, в data.frames будет больше смысла.Все должно работать без каких-либо настроек.Data.tables: df = questions, df2 = library, output = то, как я хочу, чтобы вывод выглядел, а DF = - это фактический вывод.
words1<-c(1,2,3,"How","did","Quebec")
words2<-c(.24,.25,.66,"Why","does","volicty")
words3<-c("How","do","I","clean","a","car")
library<-c(1,3,.25,.66,"How","did","does","do","I","wash","a","Quebec","car","is")
embedding1<-c(.48,.68,.52,.39,.5,.6,.7,.8,.9,.3,.46,.48,.53,.42)
df <- data.frame(words1,words2,words3)
names(df)<-c("words1","words2","words3")
words1<-c(.48,NA,.68,.5,.6,.48)
words2<-c(NA,.52,.39,NA,.7,NA)
words3<-c(.5,.8,.9,NA,.46,.53)
output<-data.frame(words1,words2,words3)
#--------Upload 2nd dataset-------#
df2 <- data.frame(library,embedding1)
names(df2)<-c("library","embedding1")
#-----Find columns--------#
l=ncol(df)
l
mynames<-colnames(df)
head(mynames)
#------Combine and match libary to training data------#
require(gridExtra)
List = list()
for(name in mynames){
df1<-df[,name]
df1<-as.data.frame(df1)
x_train2<-merge(x= df1, y = df2,
by.x = "df1", by.y = 'library',all.x=T, sort=F)
new_x_train2<-x_train2[duplicated(x_train2[,2]),]
x_train2<-x_train2[,-1]
x_train2<-as.data.frame(x_train2)
names(x_train2) <- name
List[[length(List)+1]] = x_train2
}
list<-List
DF <- as.data.frame(matrix(unlist(list), nrow=length(unlist(list[1]))))