Aşağıdaki veri kümesi, büyük veri kümemin özelliklerine sahiptir. Ben data.table onu yönetiyorum, bazı sütunların numaralardır rağmen chr olarak yüklenir ve ben numerics dönüştürmek istiyoruz ve bu sütun adları Ben sayısal için bu 2 sütun dönüştürmek mümkün duyuyorum Belirli sütunlar için data.table içindeki sayısal karakter nasıl dönüştürülür?
dt = data.table(A=LETTERS[1:10],B=letters[1:10],C=as.character(runif(10)),D = as.character(runif(10))) # simplified version
strTmp = c('C','D') # Name of columns to be converted to numeric
# columns converted to numeric and returned a 10 x 2 data.table
dt.out1 <- dt[,lapply(.SD, as.numeric, na.rm = T), .SDcols = strTmp]
bilinmektedir edilir Yukarıdaki kod ile ancak bunun yerine dt güncellemek istiyorum. Kullanmaya çalıştım: = ancak işe yaramadı. Yardıma ihtiyacım var! (- Şu sipariş değişebilir bazı durumlarda endişeliyim gibi çalıştığını bile değil benim ideal çözüm data.frame gibi kodlanmış) ama hala çalışmıyor
dt.out2 <- dt[, strTmp:=lapply(.SD, as.numeric, na.rm = T), .SDcols = strTmp] # returned a 10 x 6 data.table (2 columns extra)
Hatta aşağıdaki kodu çalıştı. Birisi neden çalışmıyor bilmeme izin verebilir mi lütfen? peşin
dt[,strTmp,with=F] <- dt[,lapply(.SD, as.numeric, na.rm = T), .SDcols = strTmp]
teşekkürler!
NULL niçin kullanıyorsunuz? – skan
@skan, 'set' için dokümanlar bakın. "NULL", tüm satırlara uygulanmayı temsil eder. – A5C1D2H2I1M1N2O1R2T1