2015-07-07 3 views
0

У меня есть dataframe:Как вычислить экспоненту в некоторых столбцах кадра данных в R?

X Year Dependent.variable.1 Forecast.Dependent.variable.1 
1 2009 12.42669703    12.41831191 
2 2010 12.39309563    12.40043599 
3 2011 12.36596964    12.38256006 
4 2012 12.32067284    12.36468414 
5 2013 12.303095    12.34680822 
6 2014 NA      12.32893229 
7 2015 NA      12.31105637 
8 2016 NA      12.29318044 
9 2017 NA      12.27530452 
10 2018 NA      12.25742859 

Я хочу calulate экспоненту третьего и четвертого столбцов. Как я могу это сделать?

+0

Полное раскрытие информации: Я не уверен в этой технологии, но в принципе вам нужно обернуть свой код в обратные ссылки или поместить его в блок кода. Также было бы полезно, чтобы пользователи хотели ответить на вопрос, могли бы вы показать, что вы пробовали до сих пор. Благодаря! –

+0

@Thais: Я добавил ответ ниже. Пожалуйста, дайте мне знать, отвечает ли это на ваш вопрос, а если нет, то каким образом он должен быть пересмотрен. Если он отвечает на ваш вопрос, пожалуйста, примите ответ, нажав на кнопку рядом с моим ответом (который затем станет зеленым). :) – Cleb

+0

@ Cleb благодарит много. Я здесь новичок. Ваш ответ был очень полезен для меня. :) – Thatai

ответ

2

В случае, если ваш dataframe называется dfs, вы можете сделать следующее:

dfs[c('Dependent.variable.1','Forecast.Dependent.variable.1')] <- exp(dfs[c('Dependent.variable.1','Forecast.Dependent.variable.1')]) 

, который дает вам:

X Year Dependent.variable.1 Forecast.Dependent.variable.1 
1 1 2009    249371      247288.7 
2 2 2010    241131      242907.5 
3 3 2011    234678      238603.9 
4 4 2012    224285      234376.5 
5 5 2013    220377      230224.0 
6 6 2014     NA      226145.1 
7 7 2015     NA      222138.5 
8 8 2016     NA      218202.9 
9 9 2017     NA      214336.9 
10 10 2018     NA      210539.5 

В случае, если вы знаете, число столбцов, это может потом и просто с использованием:

dfs[,3:4] <- exp(dfs[,3:4]) 

, который дает вам тот же результат, что и выше. Обычно я предпочитаю использовать фактические имена столбцов, так как индексы могут меняться при дальнейшей обработке фрейма данных (например, я удаляю столбцы, а затем индексы изменяются).

Или вы могли бы сделать:

dfs$Dependent.variable.1 <- exp(dfs$Dependent.variable.1) 
dfs$Forecast.Dependent.variable.1 <- exp(dfs$Forecast.Dependent.variable.1) 

В случае, если вы хотите сохранить эти столбцы в новых переменных (ниже они называются exp1 и exp2, соответственно), вы можете сделать:

exp1 <- exp(dfs$Forecast.Dependent.variable.1) 
exp2 <- exp(dfs$Dependent.variable.1) 

Если вы хотите применить его к более чем двум столбцам и/или использовать более сложные функции, я настоятельно рекомендую посмотреть apply/lappy.

Ответит ли это на ваш вопрос?

+0

Чтобы быть понятным, если вы хотите сделать это с меньшим количеством кода, и знаете номера столбцов (как вы сказали в вопросе), тогда 'dfs [, 3: 4] <- exp (dfs [, 3: 4]) '. –

+1

@Marcinthebox: Абсолютно, я обновляю код. – Cleb