từ data.table đơn giản của tôi, ví dụ, như thế này:Lỗi "không tìm thấy" đối tượng "không tìm thấy" - điều đó có nghĩa là gì?
dt1 <- fread("
col1 col2 col3
AAA ab cd
BBB ef gh
BBB ij kl
CCC mn nm")
Tôi đang làm cho bảng mới, ví dụ, như thế này:
dt1[,
.(col3, new=.N),
by=col1]
> col1 col3 new
>1: AAA cd 1
>2: BBB gh 2
>3: BBB kl 2
>4: CCC op 1
này hoạt động tốt khi tôi thấy tên cột một cách rõ ràng . Nhưng khi tôi có chúng trong các biến và cố gắng sử dụng with=F
, điều này mang lại một lỗi:
colBy <- 'col1'
colShow <- 'col3'
dt1[,
.(colShow, 'new'=.N),
by=colBy,
with=F]
# Error in `[.data.table`(dt1, , .(colShow, new = .N), by = colBy, with = F) : object 'ansvals' not found
tôi không thể tìm thấy bất kỳ thông tin về lỗi này cho đến nay.
cảm ơn bạn đã giải thích! Liệu nó thực sự có nghĩa là không có cách nào để sử dụng 'by =' khi tên cột được lưu trữ trong các biến? –
@VasilyA Điều đó chắc chắn có thể, nhưng bạn phải làm điều đó một cách chính xác. Xem [tại đây] (http://stackoverflow.com/questions/32940580/convert-some-column-classes-in-data-table/32942319#32942319) hoặc [tại đây] (http://stackoverflow.com/questions/ 33772830/how-to-set-multiple-columns-and-selected-rows-in-data-table-to-value-from-other/33774525 # 33774525) cho các ví dụ. Bạn cũng có thể muốn đọc [hướng dẫn bắt đầu] (https://github.com/Rdatatable/data.table/wiki/Getting-started) – Jaap
tốt, trong các ví dụ đó 'by =' không được sử dụng, làm cho nó hoàn toàn khác ... Tôi sẽ đọc lại hướng dẫn Bắt đầu và có thể đăng một câu hỏi riêng để xác định chính xác những gì tôi cần. –