获取部分非数字数据集的自然日志

时间:2016-04-06 10:27:36

标签: r

我使用的数据集中填充了无理数和NA。样本可以在下面找到

>head(df, n=5)
             cheading1   cheading2  cheading1  cheading3  cheading1   cheading1
        1    1.0925485       NA     0.714186       NA     0.008650       NA
        2    1.0564646       NA     0.714286       NA     0.008651       NA
        3    0.9816899       NA     0.714186       NA     0.008652       NA
        4    0.9857995       NA     0.714186       NA     0.008651       NA
        5    0.9760769       NA     0.714086       NA     0.011350       NA

> dim(df)
[1] 16500   199

请不要假设示例中的列代表相同数据类型的连续流。随着行号增加,column1变为填充NA,其他列以相同的方式起作用。所有列都有无理数和NA内部。此数据框中到处都有零

因此,当然,当我尝试获取整个数据集的自然日志时,由于非数字值而返回错误" NA"

log(df, base=exp(1))

> Error in Math.data.frame(df, base = exp(1)) :    non-numeric variable
> in data frame: cheading2

我尝试使用删除工具尝试告诉R在执行所有数值的自然日志时排除NA,但又返回错误。

log(df, base=exp(1), na.rm=T)

> Error in log(df, base = exp(1), na.rm = T) :    unused argument (na.rm
> = TRUE)

那么如何获取整个数据框的自然日志(使用列标题),忽略所有NA并与另一个表结果,例如: lndf还有它的标题和NA?

我也试过使用for循环,但结果相同。 (生产的NANs太多)

我计划在解决此问题后在固定效果回归中使用此数据。我希望能够回答可能出现的任何问题。

还尝试记录每个数字列的日志然后将它们组合起来。仍然不起作用。

lnoecd<- log(df$oecd, base=exp(1))
lng20<- log(df$g20, base=exp(1))
lnoecdna<- log(df$oecdna, base=exp(1))
lnifscode<- log(df$ifscode, base=exp(1))
lnccode<- log(df$ccode, base=exp(1))
lnyear<- log(df$year, base=exp(1))
lnoxfx<- log(df$oxfx, base=exp(1))
lnncusd2011<- log(df$ncusd2011, base=exp(1))
lnncppp2005<- log(df$ncppp2005, base=exp(1))
...
...


 lndf <- c(lnoecd, ...the lot

每当我获取任何数字列的日志然后查看已编辑列的维度时,只返回NULL

注意:非常新的编程,并开始使用R作为一只脚。对任何可能缺乏琐碎知识的事先道歉。我希望那些试图帮助我的人会对我遇到的情况感到满意。

0 个答案:

没有答案