Introspection
Functions for Learning about Variables
Often in R
you’ll want to know things about an object or variable you’re working with. This can be useful when reading someone else’s code or even your own, especially when using packages that are new to you.
Suppose we create a variable a
:
a <- matrix(1:9, 3, 3)
What data type is this? You can find out with
> class(a)
[1] "matrix"
It’s a matrix, so matrix operations will work on it:
> a %*% t(a)
[,1] [,2] [,3]
[1,] 66 78 90
[2,] 78 93 108
[3,] 90 108 126
What are the dimensions of a
?
> dim(a)
[1] 3 3
> nrow(a)
[1] 3
> ncol(a)
[2] 3
Other useful functions that work for different data types are head
, tail
, and str
:
> head(a, 1)
[,1] [,2] [,3]
[1,] 1 4 7
> tail(a, 1)
[,1] [,2] [,3]
[3,] 3 6 9
> str(a)
int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
These are much more useful for large objects (such as big datasets). str
is also great for learning about the nesting of lists. Now reshape a
like so:
a <- c(a)
Does the class remain the same?
> class(a)
[1] "integer"
No, a
is not a matrix anymore. I won’t get a good answer if I ask for dimensions now:
> dim(a)
NULL
Instead, I can ask for the length:
> length(a)
[1] 9
What about now:
> class(a * 1.0)
[1] "numeric"
Often you may work with data.frames
:
a <- as.data.frame(a)
names(a) <- c("var1", "var2", "var3")
See the variable names:
> names(a)
[1] "var1" "var2" "var3"
These functions can help many ways when using R
.