Several useful functions in R check the variable type or convert it between different variable types. For most of the major R objects, language provides **is.datatype()** function or **as.datatype()** function.

For example, if we are checking for the vectors, then the R language provides **is.vector()** function to check if it is a vector or not and **as.vector()** function to coerce the different data types.

Objects are the instance of the class, and everything in R is an object. To know more about this, look at Data types in R.

These functions are R objects specific and not general, and there are functions through which you can find the data type of variables.

**How to check data type in R**

There are 3 main ways to check the data type of a variable in R.

**Using the class() function**: It returns the data type of any R object.**Using the typeof() function**: It returns the data type of a variable.**Using the str() function**: It returns the**data****type**of every variable in a**data frame.**

**Method 1: Using a class() function**

To **check** the **data** **type** of any **R** **object**, use the **class()** **function**. If the object does not have a class attribute, it has an implicit class, prominently “matrix“, “array“, “function”, or “numeric,” or the result of **typeof(x)**.

**Syntax**

`class(x)`

The **x **is an R Object.

**Example**

```
rv <- c(11, 15, 18, 19, 21)
rv
class(rv)
```

**Output**

```
[1] 11 15 18 19 21
[1] "numeric"
```

**Method 2: Using the typeof() function**

To **get** the **data** **type** of a **variable** in **R**, use the **typeof()** function. The **typeof()** is a built-in function that defines any R object’s (internal) type or storage mode.

**Syntax**

`typeof(x)`

The **x **is any R object.

**Example**

Define a vector of integers and see its data type using the typeof() function.

```
rv <- c(11, 15, 18, 19, 21)
rv
typeof(rv)
```

**Output**

```
[1] 11 15 18 19 21
[1] "double"
```

The internal data type of the above vector is numeric or double.

To check the numeric data type in R programming, use the **is.numeric()** function.

```
rv <- c(11, 15, 18, 19, 21)
rv
is.numeric(rv)
```

**Output**

```
[1] 11 15 18 19 21
[1] TRUE
```

And it returns **TRUE, meaning the vector contains **numeric components.

If the vector contains the character components, then it will return **FALSE.**

```
rv <- c("Check", "R", "Data type")
rv
is.numeric(rv)
```

**Output**

```
[1] "Check" "R" "Data type"
[1] FALSE
```

To check the specific character data type in R, use the **is.character()** method.

```
rv <- c("Check", "R", "Data type")
rv
is.character(rv)
```

**Output**

```
[1] "Check" "R" "Data type"
[1] TRUE
```

To check the data type of the list in R, use the** typeof( )** function.

```
rl <- list("Check", "R", "Data type")
typeof(rl)
```

**Output**

`[1] "list"`

**Method 3: Using the str() function**

To **check** the **data** **type** of every variable in a **data frame**, use the **str()** function in R.

```
df <- data.frame(a1 = 1:3, a2 = 4:6, a3 = 7:9)
str(df)
```

**Output**

```
'data.frame': 3 obs. of 3 variables:
$ a1: int 1 2 3
$ a2: int 4 5 6
$ a3: int 7 8 9
```

You can see that:

- Variable a1 is a
**numeric**variable. - Variable a2 is a
**numeric**variable. - Variably a3 is a
**numeric**variable.

**FAQ**

**How to check the mode of a variable in R?**

Use the **typeof()** function to check the internal mode of a variable in R.

**How to check if a variable is a list or not in R?**

Use the **is.list()** function to check if a variable is a list in R.

**How to check if a variable is a dataframe or not in R?**

Use the **is.data.frame()** function to check if a variable is a **data frame** in **R**.

**How to check if a variable is a specific data type in R?**

You can use the** is. functions**, such as **is.numeric()**, **is.character()**, **is.integer()**, **is.logical()** to check if a variable has a specific **data** **type** in **R**.

**Conclusion**

The easy way to check a variable’s data type is to use either **class()** or **typeof()** function in R.

If you want to check the specific data type, R also provides those functions, like **is.numeric()** or** is.character()**. They return either a **TRUE** or **FALSE** value.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language.