Bir dizi data.tables'i benzer yollarla işlemeye çalışıyorum ve bunu gerçekleştirmek için bir işlev yazmak istiyorum. İşlemlerin gerçekleştirileceği sütunların listesini içeren bir parametreyi iletmek istiyorum. Bu, sütunların vektör beyanı: = operatörün sol tarafı olduğunda, ancak daha önce bildirilmişse (veya işleve geçirilmişse) iyi çalışır. Takip kodu sorunu gösterir.R data.table öğesinden birden çok sütunun kaldırılması için sütunlar parametresiyle kaldırılacak
dt = data.table(a = letters, b = 1:2, c=1:13)
colsToDelete = c('b', 'c')
dt[,colsToDelete := NULL] # doesn't work but I don't understand why not.
dt[,c('b', 'c') := NULL] # works fine, but doesn't allow passing in of columns
hatası "yeni bir sütun 'colsToDelete' sonra NULL (silme) atama ekleme" dir. Açıkçası, 'colsToDelete' yeni bir sütun adı olarak yorumlanıyor. Ben R yeni bu satırların
dt[, colNames := lapply(.SD, adjustValue, y=factor), .SDcols = colNames]
boyunca bir şey yapıyor, ama bazı başka dillerde ziyade daha deneyimli zaman
aynı sorun oluşursa, bu nedenle bu saçma bir soru olabilir.