0
我正在處理一個包含X和Y列的data.table,並且我想創建一個新的列Z,它是所有記錄的數目(X,Y)的相同值。在多個列中創建data.table中的一個新列
我知道的語法與data.frame工作時:
ddply(df,.(X,Y),nrow)
我測試了不同的語法我在這個論壇上找到,但他們沒有工作:
dt[, Z := lapply(.SD,nrow), by="X,Y"] # or
dt[, `:=`(Z = lapply(.SD,nrow)), by="X,Y"]
我精確的X和Y是數字。
我得到的錯誤\'[.data.table \'(DT,\' := \'(Z,.N),:: RHS類型('integer')必須與LHS('list')匹配。檢查和脅迫會對性能影響太大,改變目標列的類型,或強制:=你自己的RHS(例如,通過使用1L而不是1)錯誤消息 – Dan82
您已經有一個名爲Z的列,其數據類型不同。如果你不需要它,首先使用'dt [,Z:= NULL]'去除Z. – 67342343
你是對的,非常感謝 – Dan82