2013-07-03 3 views
0

Я застреваю при попытке получить пару ключей, когда ключ имеет несколько компонентов.Ключ RHadoop с несколькими компонентами

Скажем, что все ключи содержат 3 строковых компонента, например: {«Я» «как» «Люси»}, или {«Ты» «ненавидишь» «Джимми»}.

Сочетание этих трех строк будет уникальным ключом. И то, что я хочу для результата mapreduce, - это номер записи {«Я», например «Люси»} или {«Ты», «Ненавижу» «Джимми»}.

Вопрос в том, какую структуру я должен использовать для ключа с тремя строками?

Если я использую список в качестве ключа:

LST1<-list(who="I", how="like", whom="Lucy") 
LST2<-list(who="I", how="like", whom="Lucy") 

LST1 и LST2 должны иметь такое же ключевое значение, но проблема в том, что они являются разными объектами, поэтому структура списка не может быть использована в качестве ключа.

Если я использую вектор в качестве ключа:

v1<-c("I","like","lucy") 
v2<-c("I","like","Jimmy") 

Что R будет делать пытается сравнивать каждую запись в таком же положении, и возвращает вектор логических значений, которые в данном случае является {TRUE, TRUE, ЛОЖНЫЙ}.

Любое предложение? Какую структуру я могу использовать? Или есть какой-нибудь сложный способ справиться с этим?

Я знаю, что могу справиться с этим в Java, но мне нужно решение в R. И в случае 3 строки это просто пример, компоненты могут быть все как числовые, строковые, полукокса и т.д.

ответ

0

Как связать вектор строк с новой строкой и использовать ее как ключ?

Например,

v1<-c("I","like","lucy") 
v2<-c("I","like","Jimmy") 
s1 <- paste(v1, sep = " ") 
s2 <- paste(v2, sep = " ") 
+0

Ну, я использую этот метод, но это не то, что я действительно хочу. Вместо этого я ищу больше R-подобных решений. Благодаря вашему ответу! –

+0

Я не могу найти другого решения, возможно, это то, что используют ppl. –

Смежные вопросы