2012-06-21 60 views
5

Tôi khá mới với R, và đã tự hỏi nếu có một cách để lưu trữ vectơ trong một khung dữ liệu sao cho mỗi mục nhập của khung dữ liệu là một vectơ.Lưu trữ vectơ làm mục nhập khung dữ liệu?

Tôi muốn gán nhập cảnh vào một vector, và có thể thay đổi nó sau:

df[2,]$Value <- c(1,2,0) 
df[3,]$Value <- c(0,0,1) 
df[3,]$Value <- df[3,]$Value + c(2,4,4) 

Nhưng chỉ có thể làm công việc này như thay thế 3 mục khác nhau trong khung dữ liệu. Có ai biết nếu điều này là có thể?

df: 
     V1 V2  V3 
1 c(1,2) c(2,3) c(0,0) 
2 c(1,1) c(0,0) c(2,2) 
+0

Bạn có nghĩa là bạn muốn có thể sử dụng các vectơ có kích thước khác nhau? –

+2

Nó sẽ ít gây nhầm lẫn nếu bạn ngừng cố gắng để giày-horn này vào một khung dữ liệu và thay vào đó chỉ cần sử dụng một danh sách các danh sách. – joran

+0

đã đồng ý. một danh sách các danh sách hoặc một mảng có lẽ sẽ tốt hơn. Điều này là không thể vì một khung dữ liệu là đối tượng 2D – LostLin

Trả lời

3

Bạn không thể có khung dữ liệu 3D. Bạn có thể đạt được điều này nhiều cách nhưng cách đơn giản nhất để giải thích khái niệm có lẽ sẽ có một danh sách trong một danh sách:

> entries <- list(V1=list(c(1,2), c(1,1)), V2=list(c(2,3), c(0,0)), V3=list(c(0,0),c(2,2))) 
> entries 
$V1 
$V1[[1]] 
[1] 1 2 

$V1[[2]] 
[1] 1 1 


$V2 
$V2[[1]] 
[1] 2 3 

$V2[[2]] 
[1] 0 0 


$V3 
$V3[[1]] 
[1] 0 0 

$V3[[2]] 
[1] 2 2 

Bây giờ cho phép nói rằng bạn muốn thay đổi mục thứ hai của V1 bạn chỉ đơn giản sẽ làm

mục $ V1 [[2]] < - c (2,2)

hoặc

mục [[1]] [[2]] < - c (2,2)

+0

Tôi hiểu cách thay thế một hàng hoặc cột; Tôi muốn lưu trữ các vectơ trong khung dữ liệu, một vectơ như mỗi mục nhập: df: V1 V2 V3 1 c (1,2) c (2,3) c (0,0) 2 c (1) , 1) c (0,0) c (2,2) – user1428668

+0

ý của bạn là gì? bạn có nghĩa là hàng? – LostLin

+0

xem ví dụ về khung dữ liệu được đề cập ... Xin lỗi, điều này thật khó hiểu! – user1428668

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