Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add a factor column to dataframe based on a conditional statement from another column?

Tags:

dataframe

r

I have a dataframe for which I need to add a factor column based on a conditional statement. Here is the data.

Code:

    morstats.agri.f <- moroccostats[c("year","agVA_g","agVA_ppp_g")]     morstats.agri.f 

Question:

So, i want to add a column "periodframe" to the dataframe that has two entries: "pre-1991" and "post-1991" based on the condition for the column "year"?

the dataframe looks like this:

    year agVA_g   agVA_ppp_g  1  1960   0.00  0.000000000  2  1961   0.00  0.000000000  3  1962   0.00  0.000000000  4  1963   0.00  0.000000000  5  1964   0.00  0.000000000  6  1965  -0.13 -0.160505952  7  1966   0.09  0.065780672  8  1967   0.10  0.075941092  9  1968  -0.04 -0.064963044  10 1969   0.11  0.084530984  11 1970   0.19  0.161963328  12 1971   0.12  0.097397145  13 1972   0.19  0.160263118  14 1973   0.20  0.172040051  15 1974   0.01 -0.012005158  16 1975   0.14  0.111609284  17 1976  -0.02 -0.044823054  18 1977   0.32  0.299092259  19 1978   0.13  0.104535675  20 1979   0.20  0.171374920 

etc.

like image 579
iouraich Avatar asked May 15 '13 16:05

iouraich


People also ask

How do I get a column value of a Pandas DataFrame based on another column?

You can extract a column of pandas DataFrame based on another value by using the DataFrame. query() method. The query() is used to query the columns of a DataFrame with a boolean expression. The blow example returns a Courses column where the Fee column value matches with 25000.

How do I add a column to a DataFrame in R based on other columns?

This will be done using the add_column() function from the Tibble package. It is worth noting, that both tibble and dplyr are part of the Tidyverse package. Apart from adding columns to a dataframe, you can use dplyr to remove columns, with the select() function, for example.


1 Answers

you can use ifelse like this

dataframe$periodframe <- ifelse(dataframe$year > 1991,"post-1991", "pre-1991") 
like image 69
tdh186 Avatar answered Oct 12 '22 13:10

tdh186