2012-06-21 12 views
5

मैं आर के लिए काफी नया हूं, और सोच रहा था कि डेटा फ्रेम में वैक्टर स्टोर करने का कोई तरीका है, जैसे डेटा फ्रेम की प्रत्येक प्रविष्टि एक वेक्टर है।स्टोर वैक्टर डेटा फ्रेम प्रविष्टियों के रूप में?

मैं एक वेक्टर के लिए प्रवेश आवंटित करने के लिए, और इसे बाद में बदल करने में सक्षम हो चाहता हूँ:

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

लेकिन केवल डेटा फ्रेम में 3 अलग प्रविष्टियों की जगह के रूप में यह काम कर सकते हैं। यदि संभव है तो किस प्रकार, क्या कोई जानता है?

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

क्या आपका मतलब है कि आप विभिन्न आकारों के वैक्टरों का उपयोग करने में सक्षम होना चाहते हैं? –

+2

यदि आप इसे डेटाफ्रेम में जूता-सींग करने की कोशिश करना बंद कर देते हैं और इसके बजाय बस सूचियों की सूची का उपयोग करना बंद कर देते हैं तो यह कम भ्रमित होगा। – joran

+0

सहमत हुए। सूची या सरणी की एक सूची शायद बेहतर होगी। यह संभव नहीं है क्योंकि डेटाफ्रेम 2 डी ऑब्जेक्ट – LostLin

उत्तर

3

आपके पास 3 डी डेटा फ्रेम नहीं हो सकता है। आप इस कई मायनों लेकिन सबसे आसान एक धारणात्मक व्याख्या करने के लिए प्राप्त कर सकते हैं शायद एक सूची के भीतर एक सूची है करने के लिए होगा:

> 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 

अब कहते हैं कि तुम तो आप बस

करना होगा V1 की दूसरी प्रविष्टि को बदलना चाहते हैं की सुविधा देता है

प्रविष्टियों $ V1 [[2]] < - सी (2,2)

या

प्रविष्टियां [[1]] [[2]] < - सी (2,2)

+0

है, मैं समझता हूं कि पंक्ति या कॉलम को कैसे बदला जाए; मैं वैक्टर को डेटा फ्रेम में स्टोर करना चाहता हूं, प्रत्येक प्रविष्टि के रूप में एक वेक्टर: डीएफ: वी 1 वी 2 वी 3 1 सी (1,2) सी (2,3) सी (0,0) 2 सी (1 , 1) सी (0,0) सी (2,2) – user1428668

+0

प्रवेश से आपका क्या मतलब है? क्या आपका मतलब पंक्ति है? – LostLin

+0

प्रश्न में डेटा फ्रेम उदाहरण देखें ... क्षमा करें यह इतना भ्रमित है! – user1428668

संबंधित मुद्दे