2012-09-27 32 views

Trả lời

45

Đơn giản chỉ cần:

x <- vector(mode="numeric", length=0) 
91

Nếu bạn đọc sự giúp đỡ cho vector (hoặc numeric hoặc logical hoặc character hoặc integer hoặc double, 'thô' hoặc complex vv) sau đó bạn sẽ thấy rằng tất cả họ đều có một length (hoặc length.out lập luận mà mặc định là 0

Do đó

numeric() 
logical() 
character() 
integer() 
double() 
raw() 
complex() 
vector('numeric') 
vector('character') 
vector('integer') 
vector('double') 
vector('raw') 
vector('complex') 

Tất cả các vectơ độ dài 0 chiều dài của các chế độ nguyên tử thích hợp.

# the following will also return objects with length 0 
list() 
expression() 
vector('list') 
vector('expression') 
+1

Tôi xin lỗi vì bỏ phiếu xuống; nó hoàn toàn ngẫu nhiên và tôi chỉ mới nhận ra điều đó đã xảy ra. Nó sẽ không cho phép tôi thay đổi. Lấy làm tiếc. –

+1

Và nếu vectơ trống có ý định giữ ngày, bạn sẽ sử dụng cái gì? – Zelbinian

+0

@Zelbinian Đó là một sự tò mò. Bạn đang cố gắng đạt được điều gì bằng cách làm điều đó? –

3

Giả sử bạn muốn tạo vectơ x có độ dài bằng 0. Bây giờ hãy v là bất kỳ vectơ nào.

> v<-c(4,7,8) 
> v 
[1] 4 7 8 
> x<-v[0] 
> length(x) 
[1] 0 
+1

tại sao nhãn hiệu này bị đánh dấu? – HattrickNZ

+1

Tại sao bài đăng của tôi bị đánh dấu? –

+1

Tôi không biết điều gì đang xảy ra ở đó. Một lần nữa câu trả lời của tôi là đánh dấu xuống. Tại sao??? Tôi muốn biết lời giải thích. Bất cứ ai có thể cho tôi câu trả lời tại sao câu trả lời của tôi đánh dấu xuống? –

1

Đây không phải là một câu trả lời rất đẹp, nhưng đó là những gì tôi sử dụng để tạo ra vector zero-length:

0[-1]  # numeric 
""[-1] # character 
TRUE[-1] # logical 
0L[-1] # integer 

Một chữ là một vector có độ dài 1, và [-1] loại bỏ phần tử đầu tiên (các yếu tố chỉ trong trường hợp này) từ vectơ, để lại vectơ có các phần tử bằng 0.

Như một phần thưởng, nếu bạn muốn có một đơn NA của loại tương ứng:

0[NA]  # numeric 
""[NA] # character 
TRUE[NA] # logical 
0L[NA] # integer