r - 如何从 R 中的两个数据帧中提取三元组?
问题描述
我有两个这样的数据框,是从大量文档中提取的:
id <- c("doc7")
lemma_target <- c("Teilestatus", "Meldung", "Datum", "Datum", "Betriebsarten")
lemma <- c("ergeben", "senden", "ermitteln", "sammeln", "enthalten")
origin <- c("oa_relations")
oa_relations <- data.frame(id, lemma_target, lemma, origin)
id <- c("doc7")
lemma_target <- c("Information", "welch", "teilen", "System", "Datum")
lemma <- c("ergeben", "werden", "werden", "sammeln", "enthalten")
origin <- c("sb_relations")
sb_relations <- data.frame(id, lemma_target, lemma, origin)
现在我想从两个数据帧中提取三元组,在我的示例中System - sammeln - Datum
:我希望同一个文档(在本例中)中的所有lemma_target
位置lemma
都相同(在本例中为“sammeln” doc7
)。我尝试使用rbind
然后过滤和选择加入dfs,但它不起作用,因为我对SQL语法感到困惑......非常感谢任何帮助!
解决方案
看起来您只是想合并数据,但在两个数据帧中使用完全相同的变量名称有点不走运。因此,merge()
如果不对数据稍加调整,该函数就无法工作,因为否则它会在所有共享变量名称中搜索相同的值。我在您的变量名中添加了"_oa"
and并假设变量名不是必需的。"_sb"
"lemma_target"
origin
colnames(oa_relations)[2] <- "lemma_target_oa"
colnames(sb_relations)[2] <- "lemma_target_sb"
oa_relations$origin <- NULL
sb_relations$origin <- NULL
merge(oa_relations, sb_relations)
这给出了:
id lemma lemma_target_oa lemma_target_sb
1 doc7 enthalten Betriebsarten Datum
2 doc7 ergeben Teilestatus Information
3 doc7 sammeln Datum System
推荐阅读
- amazon-web-services - AWS KMS - 为什么我在尝试加密数据时需要“kms:Decrypt”权限?
- css - 当直接在 Chrome 中加载而不是在浏览器中显示时,CSS URL 会导致下载
- powershell - Poweshell、命名空间和变量声明
- java - 不幸的是你的应用程序没有运行 ha.. 找不到类 'android.view.WindowInsets) E/EGL_emulation: tid 4854: eglSurfaceAttrib(1210): error 0x3009
- java - 基于时间戳在java中的值对映射进行排序
- python - 使用 Python Flask 执行多个 SQL 查询
- lucene - lucene BKDWriter 是否在构建方法中准确计算leafCardinality?
- django - Django booleanfield modelform
- c# - 在 excel 文档 VS C# 的特定工作表中创建新行
- python-3.x - 我可以查看地图上每个 Folium MarkerCluster 中的哪些点吗?