【发布时间】:2015-12-20 11:04:19
【问题描述】:
我有一个非常大的数据框,例如:
df = data.frame(nr = c(3,3,4), dependeny = c("6/3/1", "9/3/1",
"5/4/4/1"), token=c("Trotz des Rückgangs",
"Trotz meherer Anfragen", "Trotz des ärgerlichen Unentschiedens"))
nr dependeny token
1 3 6/3/1 Trotz des Rückgangs
2 3 9/3/1 Trotz meherer Anfragen
3 4 5/4/4/1 Trotz des ärgerlichen Unentschiedens
我想根据“nr”和“dependency”中的值添加第 4 列,其中包含“token”的摘录。更准确地说,我想要来自“token”的元素,它们对应于“dependency”中对应于“nr”的值。
示例: 第 1 行: 我想要“des”,因为“nr”是 3,而 2 是“dependency”中的第二个元素。 “token”中的第二个元素是“des”。
第 3 行: 我想要“des ärgerlichen”,因为“nr”是 4,而 4 是“依赖”中的第二个和第三个元素。 “tokens”中的第二个和第三个元素是“des ärgerlichen”。
我尝试过使用 split 和 str_split,但不知道如何处理结果元素。
【问题讨论】:
-
第二行是
meherer吗? -
或与data.table:
setDT(df)[,paste(strsplit(as.character(token), ' ')[[1]][unlist(gregexpr(nr, gsub('/','',dependeny)))], collapse=' '),token]