5
ile lapply içindeki sütun adını geri alın. Data.table içindeki tüm sütuna bir işlev uygulamak istiyorum. Bu nedenle, ben depp ile .SD kullanıyorum. Ama, lapply içinde, masamın sütununu alamıyorum. .SD
x = data.table(a=1:10, b=10:1, id=1:5)
x[,lapply(.SD,function(t){t*id}),.SDcols=c(1,2)]
Error in ..FUN(a) : object 'id' not found
Mesela
içinBen aşağıdaki do: Biz daha iyi
x[,lapply(.SD,function(t){t*x$id}),.SDcols=c(1,2)]
yapabilir mi?
Teşekkür! I sütununda işlevi uygulamaktan kaçınmanın bir yolu var mı? – Nicolas
@Nicolas lütfen düzenlememi kontrol et. Küçük ipucu, hıza düşerseniz, fonksiyonunuzu her zaman en kompakt yapısını (çoğu zaman daha hızlı kod anlamına gelir) vermeyi deneyin. – Michele
Verdiğiniz üç alternatiften ilkini beğeniyorum, ancak '.SD 'kullanılmaya başlandı. Bence x [, lapply (liste (a, b), '*, id)]' 'en iyi çözümdür ve' .SDcols'un kullanılmasından daha fazla yazmayı gerektirmez. –