r - Why does data.table group differently depending on whether I pass it the variable name directly or not? -
अगर मैं variable मुझे यह परिणाम मिलता है समूह के साधन से मेल खाता है लेकिन अगर मैं इस प्रोग्राम को करने की कोशिश कर रहा हूं, और चर एक अन्य चर ( I एक अलग परिणाम प्राप्त सूचना अब < कोड> मतलब समान है (अर्थात समूह द्वारा नहीं पूरे नमूना पर गणना की जाती है। आप bloodpressure को data.table पर पास करता हूँ, तो सब कुछ ठीक काम करता है।
tdt & lt; - data.table (bloodpressure = rnorm (1000, माध्य = 100, sd = 15), पुरुष = प्रतिनिधि (c (0,1))) strata.var & lt; - with (tdt , (सी ('पुरुष')) प्राप्त करें), टीडीटी [, सूची (वर्नाम = 'रक्तप्रभाव', एन =।, मतलब = मतलब (रक्तप्रदर्शन, एनएआरआर = सच), एसडी = एसडी (रक्तप्रदर्शन, ना। आरएम = TRUE)), = = (strata.var)]
strata.var varname N मतलब sd 1: 0 रक्तचाप 500 100.2821 15.13686 2: 1 रक्त प्रदूषण 500 100.0392 15.02566
& gt; मतलब (टीडीटी $ रक्तप्रवाह [tdt $ male == 0]) [1] 100.2821 & gt; मतलब (टीडीटी $ रक्तप्रवाह [टीडीटी $ पुरुष == 1]) [1] 100.0392
वर )
var_as_string & lt; - 'bloodpressure' var & lt; - साथ (tdt, मिल (var_as_string)) tdt [, सूची (VARNAME = 'bloodpressure', एन = ।, मतलब = मतलब (var, na.rm = TRUE), एसडी = एसडी (रक्तप्रदर्शन, ना। आरएम = सच)), = (strata.var) द्वारा
strata.var VARNAME एन 1 एसडी मतलब है:। 0 bloodpressure 500 100.1606 १५.१३६८६ 2: 1 bloodpressure 500 100.1606 १५.०२,५६६
& gt; मतलब (टीडीटी $ रक्तपेशर) [1] 100.1606
mean = mean (var, na.rm = TRUE) को बदल सकते हैं, के साथ < Code> mean = mean (get (var_as_string), na.rm = TRUE) और फिर यह काम करना चाहिए - अन्यथा यह केवल संख्यात्मक वेक्टर का उपयोग
v में करता है डेटा तालिका स्तंभ की बजाय आप इसे उपयोग करना चाहते हैं (और दोनों उपसमूहों के लिए
माध्य (var) देता है) के बजाय एआर ।
पुस्तकालय (data.table ) Set.seed (1) टीडीटी & lt; - data.table (bloodpressure = rnorm (1000, माध्य = 100, sd = 15), पुरुष = प्रतिनिधि (c (0,1))) strata.var & lt; - with ( tdt, (ग ( 'पुरुष'))) tdt [, सूची प्राप्त (VARNAME = 'bloodpressure', एन = .N, मतलब = मतलब (bloodpressure, na.rm = TRUE), एसडी = एसडी (bloodpressure, na.rm = TRUE)), = द्वारा (strata.var)] # strata.var VARNAME एन मतलब एसडी # 1: 0 bloodpressure 500 ९९.५८४२५ १५.५५,७३५ # 2: 1 bloodpressure 500 १००.०६,६३० १५.५०,१८८ var_as_string & lt; - 'bloodpressure' tdt [, सूची (VARNAME = 'bloodpressure', एन = .N, मतलब = मतलब (var_as_string मिल (), na.rm = TRUE), एसडी = एसडी (bloodpressure, na.rm = TRUE)), = द्वारा (strata.var)] # तबके .var varname एन मतलब sd # 1: 0 रक्तचाप 500 99.58425 15.55735 # 2: 1 रक्त दबाव 500 100.06630 15.50188
Comments
Post a Comment