r-获取用户输入并使用';对于循环';

r-获取用户输入并使用';对于循环';,r,R,我有以下代码,它从用户那里获取关键字,以便我可以搜索word_向量的数据库: theme_terms = lemmatize_words(scan(strip.white = TRUE, sep = '\n', what = character())) 我想使用以下作业中提供的单词,但用户可以输入任意多的单词,不幸的是,我当前的作业是静态的 result = word_vectors[theme_terms[1], , drop = F] + word_vectors[theme_terms[

我有以下代码,它从用户那里获取关键字,以便我可以搜索word_向量的数据库:

theme_terms = lemmatize_words(scan(strip.white = TRUE, sep = '\n', what = character()))
我想使用以下作业中提供的单词,但用户可以输入任意多的单词,不幸的是,我当前的作业是静态的

result = word_vectors[theme_terms[1], , drop = F] + word_vectors[theme_terms[2], , drop = F]
我想在
for循环
中重新创建上述语句,该循环将使用与用户输入相同数量的单词

我尝试了以下方法:

a) 无法工作,因为我正在尝试将非数值参数绑定到二进制运算符

for(i in 1:length(theme_terms)){
  temp =  word_vectors[theme_terms[i], , drop = F] 
  result = result + temp
}
b) 不工作,因为它是一个字符串,我还必须删除字符串标记和额外的+结束

for(i in 1:length(theme_terms)){
  temp = paste0(paste0("word_vectors[", theme_terms[i],", , drop = F] + "))
  result = paste(result, temp)
}
有什么建议吗?多谢各位

编辑

word_vectors是一个值矩阵,可按如下方式复制:

terms = c("cancer", "blood", "machine")
v1 = c(0.002, 0.313, 0.1313)
v2 = c(0.23, 0.14, 0.155)
v3 = c(0.141, 0.41, 0.125)

word_vectors = as.matrix(data.frame(terms, v1, v2, v3))

使用
sapply

result <- sapply(theme_terms, function(x) word_vectors[x, , drop = F])

result使用
for
循环,我们可以初始化
列表
来存储输出

out <- vector('list', length(theme_terms))
for(i in seq_along(theme_terms)) {
    out[[i]] <- word_vectors[theme_terms[i], , drop = FALSE]
}

out你能提供一些数据并使这篇文章重现吗?什么是单词向量?
sum(主题词,函数(x)单词向量[x,drop=F])有效吗?此外,请包括所有必要的非基R库,这是在后使用。嗨,罗布,不幸的是,不是因为字_向量包含数字向量。基本上我想复制result=word\u vectors[theme\u terms[1],drop=F]+word\u vectors[theme\u terms[2],drop=F]。。。。。(inf)…让我尝试创建一个可复制的示例添加了一个word_向量是什么的示例。谢谢你哦,你的代码没有求和部分也能工作,谢谢:)太好了,谢谢你Akrun:)