沒有名稱的列表返回NULL其名稱:獲取列表元素的名稱一致的矢量
> names(list(1,2,3))
NULL
但增加了一個名爲事情,突然名稱具有列表的長度:
> names(list(1,2,3,a=4))
[1] "" "" "" "a"
因爲這現在是一個命名清單。我想是一個函數,rnames說,做任何列表到一個名爲列表,使得:
rnames(list(1,2,3)) == c("","","")
identical(rnames(list()), character(0))
length(rnames(foo)) == length(foo) # for all foo
及以下,這是什麼名字()做反正:
rnames(list(1,2,3,a=3)) == c("","","","a")
rnames(list(a=1,b=1)) == c("a","b")
我現在哈克的方法是一個名叫事情添加到列表中,得到的名稱,然後砍了下來:
rnames = function(l){names(c(monkey=1,l))[-1]}
,但有沒有做這更好/有道?
足夠接近:)我的rnames返回的是名稱而不是重命名的列表,但重命名的列表可能很有用。我希望有一個函數可以將列表轉換爲命名列表。找不到一個... – Spacedman