基於業務方案的數據集,這似乎是一個data.table。在data.table子集劃分列,我們需要with = FALSE
df[, cnm, with = FALSE]
# X2 X3
#1: 1 3
#2: 5 3
#3: 3 4
#4: 6 5
#5: 2 2
按照?data.table
文檔
與 - 默認情況下與= TRUE和j是X的幀內評價;列名可以用作變量,可以使用 。
當with = FALSE j是列名稱的字符向量時,要選擇的列位置向量的數值爲 或形式爲startcol:endcol, 且返回的值始終爲data.table。 with = FALSE通常是 在data.table中用於動態選擇列。請注意,x [, cols,with = FALSE]等同於x [,.SD,.SDcols = cols]。
如果數據集data.frame
,只是
setDF(df)#convert to 'data.frame'
df[cnm]
# X2 X3
#1 1 3
#2 5 3
#3 3 4
#4 6 5
#5 2 2
將子集中的數據集
的[[
是用於提取data.frame
或list
元件
的單個列運用OP的代碼在data.table
ge TS在.subset2相同的錯誤消息
df[[cnm]]
錯誤(X,I,確切=確切):下標越界
的
如果我們做data.frame subsetting選項中data.table
,它不會工作要麼
df[cnm]
錯誤[.data.table
(DF,CNM):當i爲data.table(或 字符向量),必須使用'on ='參數(請參閱?data.table)或鍵入x(即,數據表格)指定要連接的列或者 。排序, 和,標記爲排序,請參閱?setkey)。由於x在RAM中排序,鍵控連接可能會對非常大的數據帶來進一步的速度收益。
謝謝 - 第一個工作,但需要將數據幀轉換爲表...第二個沒有工作,當我嘗試:> cnm <-c(「X2」,「X3」) > df [cnm] 錯誤在[[.data.table](df,cnm): 當我是data.table(或字符向量),必須鍵入x(即排序,並標記爲排序),以便data.table知道要加入哪些列並利用x進行排序。先撥打setkey(x,...),看到?setkey。 –
第二個不會工作,因爲你的數據集是'data.table' – akrun