我有兩個dataframes,就像這些:加快數據幀匹配
data = data.frame(data=cbind(1:12,rep(c(1,2),6),rep(c(1,2,3),4)))
colnames(data)=c('v','h','c')
lookup = data.frame(data=cbind(c(rep(1,3),rep(2,3)),rep(c(1,2,3),2),21:26))
colnames(lookup)=c('h','c','t')
我想從數據$ v,其中H和C柱的比賽中減去查找$噸。
我覺得像這樣的工作
data$v-lookup$t[lookup$h==data$h&lookup$c==data$c]
但不會奇蹟般地知道,我想通過
我終於實現了這個
myt = c()
for(i in 1:12) {
myt[i] = lookup$t[lookup$h==data$h[i]&lookup$c==data$c[i]]
}
數據行隱式迭代
這工作正常,但我希望有人可以建議一個更合理的方式,不涉及循環。
在現實中,他們都是字符串,因爲我在創建數據幀可怕。謝謝! – ansate
@ansate - FWIW,你可以用你的'stringsAsFactors'選項和'read.table'選項來修改默認情況下的字符串讀入。默認值應該是讀取字符串作爲因素。 –