2011-09-05 18 views
12

संभव डुप्लिकेट गुजर:
Pass a data.frame column name to a functionआर में समारोह, एक dataframe और एक स्तंभ नाम

मैं आर में एक समारोह आदानों के बीच dataframe है जहां बनाने के लिए कोशिश कर रहा हूँ और एक आम नाम।

DT_CAP_COLUMN <- function(input_table,output_table,column_name, 
          cap_function,Parameter){ 
    input_table$column_name 
    (...) 
    return(1) 
} 

आउटपुट::

DT_CAP_COLUMN(churn_3,churn_4,'VOICE_REVENUE','STD',3) 
input_table$column_name is NA 

मुझे लगता है कि समस्या यह है कि input_table$column_name मान्यता प्राप्त नहीं है है कोड कुछ इस तरह होगा। input_tablechurn_3 है लेकिन input_table$column_namecolumn_name not found देता है।

क्या पास-बाय-रेफरेंस पैकेज का उपयोग किए बिना या चर के रूप में वातावरण गुजरने के बिना ऐसा करने के लिए वैसे भी है?

+0

@ केविन अच्छा स्थान। बंद करने के लिए वोटिंग। – Andrie

+0

केवल इसलिए कि मेरे पास एक ही सवाल था ... – kmm

+5

एक डुप्लिकेट को कम करने की आवश्यकता नहीं है, खासकर किसी नए उपयोगकर्ता के लिए नहीं। –

उत्तर

15

आप अप्रत्यक्ष रूप से वर्ग कोष्ठक अनुक्रमण का उपयोग करके एक data.frame में एक स्तंभ को संदर्भित कर सकते हैं:

नमूना डेटा:

dat <- data.frame(
    a = letters[1:3], 
    b = LETTERS[4:6], 
    c = 7:9 
) 

फंक्शन:

my.function <- function(data, col){ 
    data[, col] 
} 

परिणाम:

> my.function(dat, "b") 
    b 
1 D 
2 E 
3 F 
> my.function(dat, "c") 
    c 
1 7 
2 8 
3 9 
+0

धन्यवाद एक लाख। ठीक उसी तरह काम किया क्योंकि मैं कॉलम नंबर और कॉलम नाम दोनों का उपयोग करना चाहता था। – jpsfer

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