sự hiểu biết của tôi là gán cho x[]
(hoặc gán cho một đối tượng với dấu ngoặc vuông, không có giá trị - cho những người tìm kiếm vấn đề này) ghi đè các giá trị trong x
, trong khi vẫn giữ attributes
rằng x
có thể có, bao gồm cả kích thước ma trận . Trong trường hợp này, sẽ rất hữu ích khi nhớ rằng một ma trận là khá nhiều chỉ là một vectơ có kích thước được thêm vào.
Vì vậy, cho ...
x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
dimnames(x)[[1]] <- letters[1:8]
attributes(x)
#$dim
#[1] 8 2
#
#$dimnames
#$dimnames[[1]]
#[1] "a" "b" "c" "d" "e" "f" "g" "h"
#
#$dimnames[[2]]
#[1] "x1" "x2"
... điều này sẽ giữ cho kích thước và tên lưu trữ như các thuộc tính trong x
x[] <- as.integer(x)
Trong khi điều này sẽ không ...
x <- as.integer(x)
Cùng một logic cũng áp dụng cho các vectơ:
x <- 1:10
attr(x,"blah") <- "some attribute"
attributes(x)
#$blah
#[1] "some attribute"
Vì vậy, điều này sẽ giúp tất cả các thuộc tính đáng yêu của bạn:
x[] <- 2:11
x
# [1] 2 3 4 5 6 7 8 9 10 11
#attr(,"blah")
#[1] "some attribute"
Trong khi điều này sẽ không:
x <- 2:11
x
#[1] 2 3 4 5 6 7 8 9 10 11
Hãy so sánh kết quả của một phân bình thường so với một bài tập cho 'x []' như vì thế. So sánh: 'x [] <- as.integer (x); x; 'tới' x <- as.integer (x); x; ' – thelatemail