How to Select DataFrame Columns by Index in R?
Last Updated :
12 Dec, 2022
In this article, we will discuss how to select columns by index from a dataframe in R programming language.
Note: The indexing of the columns in the R programming language always starts from 1.
Method 1: Select Specific Columns By Index with Base R
Here, we are going to select columns by using index with the base R in the dataframe.
Syntax:
dataframe[,c(column_indexes)]
Example:
R
data= data.frame (name= c ( "akash" , "kyathi" , "preethi" ),
subjects= c ( "java" , "R" , "dbms" ),
marks= c (90,98,78))
print (data[, c (2,3)])
|
Output:
subjects marks
1 java 90
2 R 98
3 dbms 78
Method 2: Select Specific Columns In The Index Range
We can select by using the index range operator, as shown below.
Syntax:
dataframe[,column_index_start:column_index_end]
where.
- column_index_start is the first index number, and column_index_end is the second index number.
Example:
R
data= data.frame (name= c ( "akash" , "kyathi" , "preethi" ),
subjects= c ( "java" , "R" , "dbms" ),
marks= c (90,98,78))
print (data[,1:3])
|
Output:
name subjects marks
1 akash java 90
2 kyathi R 98
3 preethi dbms 78
Method 3: Select Index Column By Excluding Columns Indexes
We can exclude the index columns by specifying in the c() vector with a – sign.
Syntax:
dataframe[,-c(column_indexes)]
Example:
R
data= data.frame (name= c ( "akash" , "kyathi" , "preethi" ),
subjects= c ( "java" , "R" , "dbms" ),
marks= c (90,98,78))
print (data[,- c (2,3)])
|
Output:
[1] "akash" "kyathi" "preethi"
Method 4: Select Column Names By Index Using dplyr
The select() function from the dplyr package is used for selecting column by index.
Syntax:
dataframe %>%
select(column_numbers)
where
- %>% operator is to load into dataframe
Syntax to import and install the dplyr package:
install.packages("dplyr")
library("dplyr")
Example:
R
library ( "dplyr" )
data = data.frame (name= c ( "akash" , "kyathi" , "preethi" ),
subjects= c ( "java" , "R" , "dbms" ),
marks= c (90, 98, 78))
data % >%
select (1, 3)
|
Output:
name marks
1 akash 90
2 kyathi 98
3 preethi 78
Share your thoughts in the comments
Please Login to comment...