2013-05-15 10 views
21

Mam ramkę danych, dla których muszę dodać kolumnę współczynnika na podstawie instrukcji warunkowej. Oto data.Jak dodać kolumnę współczynników do ramki danych na podstawie instrukcji warunkowej z innej kolumny?

Kod:

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

Pytanie:

Tak, chcę dodać kolumnę "periodframe" do dataframe który ma dwie pozycje: "pre-1991" i "post-1991" w oparciu pod warunkiem, że kolumna "rok"?

dataframe wygląda następująco:

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 

itp

+1

myślę przecinek brakuje w pierwszej linii: 'moroccostats [, c (... '? – Frank

Odpowiedz

40

można użyć ifelse jak ten

dataframe$periodframe <- ifelse(dataframe$year > 1991,"post-1991", "pre-1991") 
+0

Czy to nie zakłada, że ​​rok jest zadeklarowany jako zmienna numeryczna? Tak twierdzę, ponieważ w ramce danych" moroccostats "dwie pierwsze kolumny są zadeklarowane jako czynnik, a reszta jest zadeklarowana jako nume ric. – iouraich

+4

@ smailov83 Następnie musisz przekonwertować na numeryczne 'ifelse (jako.numeryczne (jako.charakter (df $ rok)), ...'. – ziggystar

+0

Nie wiem, co to zakłada, ale działa, gdy dane są odczytywane w jw. :) – Frank

Powiązane problemy