字符串中NA的传染性和特殊性
NA ^ 0
#> [1] 1
NA | TRUE
#> [1] TRUE
NA & FALSE
#> [1] FALSE
3. Attributes
- matrices, arrays, factors, or date-times.是在atomic vectors的基础上添加属性完成的
- Individual attributes can be retrieved and modified with attr(), or retrieved en masse with attributes(), and set en masse with structure().
```r
a <- 1:3
attr(a, “x”) <- “abcdef”
attr(a, “x”)
> [1] “abcdef”
attr(a, “y”) <- 4:6 str(attributes(a))
> List of 2
> $ x: chr “abcdef”
> $ y: int [1:3] 4 5 6
Or equivalently
a <- structure( 1:3, x = “abcdef”, y = 4:6 ) str(attributes(a))
> List of 2
> $ x: chr “abcdef”
> $ y: int [1:3] 4 5 6
属性通常应该被认为是短暂的。例如,大多数操作都会丢失大多数属性:
```r
attributes(a[1])
#> NULL
attributes(sum(a))
#> NULL
如果你想要保留其他属性,您需要创建自己的 S3 类
3.1 summary
Vector | Matrix | Array |
---|---|---|
names() | rownames() colnames() |
dimnames() |
length() | nrow() ncol() |
dim() |
c() | rbind() cbind() |
abind::abind() |
— | t() | aperm() |
is.null(dim(x)) | is.matrix() | is.array() |
4. S3 atomic vectors
最重要的向量属性之一是class,拥有一个类属性(class)会将一个对象变成一个S3 对象,
S3 对象被传递给一个通用函数(generic function)时,它的行为将与一个常规向量不同。
4.1
four important S3 vectors used in base R: