Một danh sách không có tên trả về NULL cho tên của nó:Nhận một vector phù hợp của các tên phần tử danh sách
> names(list(1,2,3))
NULL
nhưng thêm một tên điều và đột nhiên những cái tên có độ dài của danh sách:
> names(list(1,2,3,a=4))
[1] "" "" "" "a"
vì đây hiện là danh sách có tên. Những gì tôi muốn là một chức năng, rnames nói, để làm cho danh sách bất kỳ vào một danh sách tên, chẳng hạn rằng:
rnames(list(1,2,3)) == c("","","")
identical(rnames(list()), character(0))
length(rnames(foo)) == length(foo) # for all foo
và sau đây, đó là những gì tên() không anyway:
rnames(list(1,2,3,a=3)) == c("","","","a")
rnames(list(a=1,b=1)) == c("a","b")
phương pháp hacky hiện tại của tôi là thêm một điều được ghi tên vào danh sách, có được tên, và sau đó chặt nó đi:
rnames = function(l){names(c(monkey=1,l))[-1]}
nhưng là có một/cách thích hợp tốt hơn để làm điều này?
Đóng đủ :) tên của tôi trả về tên thay vì danh sách đã đổi tên, nhưng danh sách đã đổi tên có thể hữu ích. Tôi đã hy vọng có thể chỉ có một chức năng để chuyển đổi một danh sách thành một danh sách có tên. Không thể tìm thấy một ... – Spacedman