> within(list(a="a",b="b"), c="c")
Error in eval(expr, envir, enclos) : argument is missing, with no default
> within(list(a="a",b="b"), c<-"c")
$a
[1] "a"
$b
[1] "b"
$c
[1] "c"
Tôi không chắc chắn lý do chính xác hai lý do này không nên tương đương. Có vẻ như phiên bản =
được hiểu là một đối số có tên là c
trong phạm vi vì số ...
. Có cách nào để vô hiệu hóa hành vi này không? Tôi đã thử,Tại sao = và <- không tương đương trong phạm vi()?
within(list(a="a",b="b"), `c`="c")
nhưng điều đó cũng không thành công.
Đối với lý do tương tự mà 'system.time (x = rnorm (1e300))' doesn 't làm việc. –
Nếu '=' là hàm gọi hàm đầu tiên trong biểu thức được truyền cho một hàm, thì '=' được hiểu là phép gán đối số. So sánh với 'bên trong (danh sách (a =" a ", b =" b "), {c =" c "})' –
dấu = như một nhiệm vụ là các hàm bên trong sôi nổi, R bị nhầm lẫn cho dù đó là bài tập hay một cuộc tranh cãi. –