Built with Tutify.io

    AIStudyLabs

    R - Create DataFrame from Existing DataFrame

    R - Create DataFrame from Existing DataFrame

    You are often required to create a DataFrame from an existing DataFrame in R. When you create from an existing you may be required to select subset of columns or select only a few rows by filtering. This is one of the most use-cases when we are working with the data.

    <a id="h-1-quick-examples"></a>

    1. Quick Examples

    The following are quick examples of how to create a DataFrame from an existing R DataFrame.

    
    # Quick examples
    
    # Example 1 - Select columns id, gender and dob
    df2 = data.frame(df$id,df$gender,df$dob)
    
    # Example 2 - Create DataFrame with 1,3 and 4 columns 
    df2 <- df[,c(1,3,4)]
    
    # Example 3 - Create DataFrame with selecting range of columns 
    df2 <- df[,c(1:3,5)]
    
    # Example 4 - Create DataFrame with id,gender and name columns 
    df2 <- df[,c('id','gender','dob')]
    
    # Example 5 - Create DataFrame with 1,3 and 4 rows 
    df2 <- df[c(1,3,4),]
    
    # Example 6 - Create DataFrame with 1,3,4 rows and columns 2 and 4 
    df2 <- df[c(1,3,4),c(2,4)]
    
    # Example 7 - By using subset with column names
    df2 <- subset(df, select=c("id", "gender", "dob"))
    
    # Example 8 -  By using subset with indices
    df2 <- subset(df, select=c(2:3, 5))
    

    Let's create a DataFrame, run these examples and explore the output.

    
    # Create DataFrame
    df <- data.frame(
      id = c(10,11,12,13),
      name = c('sai','ram','deepika','sahithi'),
      gender = c('M','M','F','F'),
      dob = as.Date(c('1990-10-02','1981-3-24','1987-6-14','1985-8-16')),
      state = c('CA','NY','DE','FL')
    )
    
    # Print DataFrame
    df
    
    # Output
    #  id    name gender        dob state
    #1 10     sai      M 1990-10-02    CA
    #2 11     ram      M 1981-03-24    NY
    #3 12 deepika      F 1987-06-14    DE
    #4 13 sahithi      F 1985-08-16    FL
    

    <a id="h-2-create-dataframe-from-existing-using-data-frame"></a>

    2. Create DataFrame From Existing using data.frame()

    data.frame() method is used to create a DataFrame in R and also is used to create an empty DataFrame. Similarly, you can also use this to create a DataFrame by selecting subset columns and rows from an existing one.

    
    # Create DF by selecting columns id, gender and dob
    df2 = data.frame(df$id,df$gender,df$dob)
    df2
    
    # Output
    #  df.id df.gender     df.dob
    #1    10         M 1990-10-02
    #2    11         M 1981-03-24
    #3    12         F 1987-06-14
    #4    13         F 1985-08-16
    

    Note that column names have data frame prefix if you can rename columns by using R function colnames().

    <a id="h-3-create-data-frame-by-selecting-columns-from-existing"></a>

    3. Create data frame by Selecting Columns from Existing

    You can also create a DataFrame by selecting columns from the existing DataFrame. While selecting the columns you can also by name, indices, and use a range of columns.

    
    # Create DataFrame with id,gender and name columns 
    df2 <- df[,c('id','gender','dob')]
    df2
    
    # Output
    #  id gender        dob
    #1 10      M 1990-10-02
    #2 11      M 1981-03-24
    #3 12      F 1987-06-14
    #4 13      F 1985-08-16
    

    The same output can also be achieved by using indices.

    
    # Create DataFrame with 1,3 and 4 columns 
    df2 <- df[,c(1,3,4)]
    df2
    

    Similarly, you also select columns by ranges of indices.

    
    # Create DataFrame with selecting range of columns 
    df2 <- df[,c(1:3,5)]
    df2
    

    <a id="h-4-create-dataframe-by-selecting-subset-of-rows"></a>

    4. Create DataFrame by Selecting subset of Rows

    To create a DataFrame by selecting subset of rows from the existing DataFrame use the below approach. From the following example df[c(1,3,4),] returns rows 1, 3, and 4.

    
    # Create DataFrame with 1,3 and 4 rows 
    df2 <- df[c(1,3,4),]
    df2
    
    # Output
    #  id    name gender        dob state
    #1 10     sai      M 1990-10-02    CA
    #3 12 deepika      F 1987-06-14    DE
    #4 13 sahithi      F 1985-08-16    FL
    

    <a id="h-5-by-selecting-rows-columns-together"></a>

    5. By Selecting Rows & Columns together

    using the same approach select the rows and columns together and initialize the DataFrame with the result.

    
    # Create DataFrame with rows 1,3 and 4 and columns 2,4 
    df2 <- df[c(1,3,4),c(2,4)]
    df2
    
    # Output
    #     name        dob
    #1     sai 1990-10-02
    #3 deepika 1987-06-14
    #4 sahithi 1985-08-16
    

    <a id="h-6-by-using-subset-function"></a>

    6. By using subset() function

    subset() is a R primitive function that is used to select the columns from the DataFrame and assign this result to the variable to create df with the result.

    
    # By using subset with column names
    df2 <- subset(df, select=c("id", "gender", "dob"))
    df2
    
    # Output
    #  id gender        dob
    #1 10      M 1990-10-02
    #2 11      M 1981-03-24
    #3 12      F 1987-06-14
    #4 13      F 1985-08-16
    

    You can also use the subset() to select columns by indices.

    
    # By using subset with indices
    df2 <- subset(df, select=c(2:3, 5))
    df2
    

    <a id="h-conclusion"></a>

    Conclusion

    In this article, you have learned several examples of how to create a DataFrame from the existing DataFrame in R. When you create from an existing you may be required to select a subset of columns or select only a few rows by filtering. This is one of the most use-cases when we are working with the data.

    <a id="h-related-articles"></a>

    Related Articles

    <a id="h-references"></a>

    References