如何计算R中数据框某些列的指数?

How to calculate the exponential in some columns of a dataframe in 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

我想计算第三列和第四列的指数。我该怎么做?

如果您的数据框名为 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)

如果您想将这些列存储在新变量中(下面分别称为 exp1exp2),您可以这样做:

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

如果您想将其应用于两列以上 and/or 使用更复杂的函数,我强烈建议您查看 apply/lappy

这是否回答了您的问题?