У меня есть два 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, где Н и С столбцами совпадают.
Я думал, что что-то подобное будет работать
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', чтобы строки считались как факторы по умолчанию. Значение по умолчанию должно состоять в том, чтобы читать строки как факторы. –