Your best bet to start is to use `?str()`

. To explore some examples, let's make some data:

`set.seed(3221) # this makes the example exactly reproducible my.data <- data.frame(y=rnorm(5), x1=c(1:5), x2=c(TRUE, TRUE, FALSE, FALSE, FALSE), X3=letters[1:5]) `

@Wilmer E Henao H's solution is very streamlined:

`sapply(my.data, class) y x1 x2 X3 "numeric" "integer" "logical" "factor" `

Using `str()`

gets you that information plus extra goodies (such as the levels of your factors and the first few values of each variable):

`str(my.data) 'data.frame': 5 obs. of 4 variables: $ y : num 1.03 1.599 -0.818 0.872 -2.682 $ x1: int 1 2 3 4 5 $ x2: logi TRUE TRUE FALSE FALSE FALSE $ X3: Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5 `

@Gavin Simpson's approach is also streamlined, but provides slightly different information than `class()`

:

`sapply(my.data, typeof) y x1 x2 X3 "double" "integer" "logical" "integer" `

For more information about `class`

, `typeof`

, and the middle child, `mode`

, see this excellent SO thread: A comprehensive survey of the types of things in R. 'mode' and 'class' and 'typeof' are insufficient.