Tôi có ví dụ sau:Xóa cột của một data.table bên trong một hàm
irisDT <- as.data.table(iris)
mod <- function(dat) {
dat[, index:=(1:nrow(dat))]
setkey(dat, index)
dat <- dat[2:10]
dat[, index:=NULL]
invisible()
}
mod(irisDT)
names(irisDT) # it contains index
Trước sự ngạc nhiên của tôi, cột chỉ số vẫn còn tồn tại sau khi gọi hàm mod()
. Đây không phải là trường hợp khi tôi xóa dòng dat <- dat[2:10]
. Tôi đoán rằng, vì các hàng không thể bị xóa theo tham chiếu, một dữ liệu khác có thể được tạo. Tuy nhiên, tôi muốn xóa cột chỉ mục trong dữ liệu ban đầu.
Vui lòng không bắt đầu tiêu đề của bạn bằng "R:"; đó là những gì các thẻ cho. –
+1 đã tăng 100% trong cùng một vấn đề ngay hôm nay. – Beasterfield