2015-04-03 55 views
1

我正在尝试构建文本正文中彼此接近的单词字典。R:如何使用矢量项作为列表项的名称

比方说,我有这样的:

> words 
[1] "thanks" "fish" "long"  

然后我想能够做这样的事情(在apply构造内):

dictionary$words[i] <- words[-i] 

,并与该结束了:

> dictionary 
$thanks 
[1] "fish" "long" 

$fish 
[1] "thanks" "long" 

$long 
[1] "thanks" "fish" 

我试过assign,但是我搞不清楚,我甚至都没有当然,如果这是要走的路。

+0

我会用'combn去(即长度(字)-1,FUN =函数(x)的列表(x))''因为将words'并不总是三句话很长,但是,是的,这工作得很好。 – Pixelkracht 2015-04-03 08:08:01

+0

你不需要匿名函数调用。只是'list'就足够了。 – akrun 2015-04-03 08:12:26

+0

同意。如果您选择此解决方案,我忘了提及列表元素不会有名称。但是仍然发现存在'combn'是有用的。 – Pixelkracht 2015-04-03 08:29:09

回答

2

尝试:

setNames(lapply(words, function(u) words[words!=u]), words) 

#$thanks 
#[1] "fish" "long" 

#$fish 
#[1] "thanks" "long" 

#$long 
#[1] "thanks" "fish" 
+0

太棒了!我不会在一百年内想到这件事。 – Pixelkracht 2015-04-03 08:03:30

相关问题