2015-03-25 48 views
0

是否有任何方法通过每个插槽内的值重命名列表中的插槽名称。例如,在像这样的列表:R - 更改列表中的插槽名称

x <- list(c("name1","name2"), c("name1","name3"), c("name4","name5")) 
names(x) <- c("a","b","c") 
x 
$a 
[1] "name1" "name2" 

$b 
[1] "name1" "name3" 

$c 
[1] "name4" "name5" 

我想改变槽名称为了实现这样的事情:

$name1;name2 
[1] "name1" "name2" 

$name1;name3 
[1] "name1" "name3" 

$name4;name5 
[1] "name4" "name5" 

注:每个插槽可在数变量。

谢谢。

+1

请注意,结果名称不是有效的语法。这只是一个坏主意,根本没有用处。 – Roland 2015-03-25 09:50:12

回答

2

你可以使用:

names(x) <- sapply(x,paste,collapse=";") 

为x的每一个元素,这一起贴的字符串,然后将它们合并为一个载体。如您所示,这可用于设置names(x)

+0

@PedroA请注意,您需要使用引号来访问列表元素,例如:'x $“name1; name2”'。或者您必须更改名称中的分隔符。因为在R“;”用于分隔操作:'x $ name1; name2'将返回列表“x”中的元素“name1”和当前环境的objet“name2”。 – 2015-03-25 09:51:59