r - r - 获取用户输入并使用“for 循环”进行分配
问题描述
我有以下代码从用户那里获取关键字,以便我可以搜索 word_vectors 数据库:
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 loop
我想用与用户输入一样多的单词重新创建上述语句。
我尝试了以下方法:
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))
解决方案
使用for
循环我们可以初始化一个list
用于存储输出
out <- vector('list', length(theme_terms))
for(i in seq_along(theme_terms)) {
out[[i]] <- word_vectors[theme_terms[i], , drop = FALSE]
}
推荐阅读
- apache - 打印在请求出错之前触发了哪些重写规则
- python - 如何使 for 循环中的 random.choice 每次都给出相同的输出
- swift - intrinsicContentSize.width 的值大于指定的 widthAnchor
- solr - Solr - 根据流行度分数动态提升字段值
- sqlconnection - 重新定义后未配置的开放连接会发生什么
- python - 如何在 Python 中从 aspx 读取 csv 文件
- maven - graphqlcodegen 中具有不同配置的多次执行
- azure - 如何在 Cosmos 中结合 Distinct 和 Group by
- python - 如何在 oauth 2.0 上使用刷新令牌自动获取访问令牌
- apache-spark - Spark结构化流式作业:流静态连接未更新