2013-07-13 41 views
5

Tôi muốn tạo ra một dataframe new từ một old cái lớn (nhiều biến) tôi sử dụng cbind.data.frame chức năng và nó đi như thế nàyTạo một khung dữ liệu mới từ một khung dữ liệu cũ?

new <- cbind.data.frame(old$var1, old$var2, old$var3) 
str(new) 
    'data.frame': 100 obs. of 3 variables: 
$ old$var1  : num 

Tại sao var1 vẫn thuộc về old$?
Tôi muốn sử dụng chỉ new$var1 nhưng trả về object not found.

Tôi đang làm gì sai?

+10

Tại sao không chỉ 'mới <- cũ [c ("var1", "var2", "var3")] '? –

Trả lời

13

Kết hợp cả hai câu trả lời khác khác bằng cách làm này:

New <- data.frame("var1" = old$var1, 
        "var2" = old$var2, 
        "var3" = old$var3) 
+0

cảm ơn tất cả các bạn vì sugestions của bạn, tôi particuarly như thế này bởi vì nó mang lại cho bạn cơ hội để thay đổi tên biến – Pulse

2

Bạn đang làm gì sai, bạn chỉ cần đổi tên các cột trong khung dữ liệu mới bằng cách sử dụng:

names(new) <- c("var1","var2","var3") 

Bây giờ, bạn sẽ có thể sử dụng new$var1, và vân vân.

Hy vọng điều này sẽ giải quyết được vấn đề của bạn.

Các vấn đề liên quan