I am trying to apply different functions to different rows based on the value of a string in an adjacent column. My dataframe looks like this:
type size
A
This might be a might more R-ish (and I called my dataframe 'dat' instead of 'df' since df
is a commonly used function.
> facs <- c(3,1,2)
> dat$size2= dat$size* facs[ match( dat$type, c("A","B","C") ) ]
> dat
type size size2
1 A 1 3
2 B 3 3
3 A 4 12
4 C 2 4
5 C 5 10
6 A 4 12
7 B 32 32
8 C 3 6
The match
function is used to construct indexes to supply to the extract function [
.