EDITMặc dù quyết định của OP chấp nhận câu trả lời này, @ Câu trả lời của Andrie là giải pháp ưu tiên. Câu trả lời của tôi có nghĩa là chỉ để thông báo về một số tính năng lẻ của khung dữ liệu.
Như những người khác đã chỉ ra, câu trả lời ngắn gọn là điều này là không thể. data.frame
s được dự định chứa các cột của một loại nguyên tử duy nhất. @ Đề nghị của Andrie là một gợi ý tốt, nhưng chỉ cho các cú đá tôi nghĩ tôi muốn chỉ ra một cách để đánh thức loại dữ liệu này thành một data.frame
.
Bạn có thể chuyển đổi các cột vi phạm vào một danh sách (mã này giả định bạn đã thiết options(stringsAsFactors = FALSE)
):
dat <- read.table(textConnection("1,4,'m'
1,5,20
1,6,'Canada'
1,7,4
1,8,5"),header = FALSE,sep = ",")
tmp <- as.list(as.numeric(dat$V3))
tmp[c(1,3)] <- dat$V3[c(1,3)]
dat$V3 <- tmp
str(dat)
'data.frame': 5 obs. of 3 variables:
$ V1: int 1 1 1 1 1
$ V2: int 4 5 6 7 8
$ V3:List of 5
..$ : chr "m"
..$ : num 20
..$ : chr "Canada"
..$ : num 4
..$ : num 5
Giờ đây, có tất cả các loại lý do tại sao đây là một ý tưởng tồi. Đối với một, rất nhiều mã mà bạn mong đợi để chơi độc đáo với data.frame
s sẽ không thích điều này và hoặc là không, hoặc cư xử rất kỳ lạ. Nhưng tôi nghĩ tôi chỉ ra nó như một sự tò mò.
Andrie bạn nói điều tương tự như tôi nhưng tốt hơn. –
@ user718281, để đọc dưới dạng chuỗi, không phải là các yếu tố, sử dụng read.csv (..., stringsAsFactors = FALSE) – Max
Cảm ơn Andrie. Một điều tôi không hoàn toàn chắc chắn làm thế nào để làm mặc dù, là làm thế nào để tôi đi từ các tập tin csv để vector. Như trong, nó là sự hiểu biết của tôi rằng read.csv kết quả đầu ra một ma trận, không phải là một vector. – evt