2015-03-25 32 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