dataframe如何转换为数字_如何将数据框列转换为数字类型?

d7d35733fa60278832c2dd9069f7a569.png

jeck猫

由于(仍然)没有人得到复选标记,我认为你有一些实际问题,主要是因为你没有指定你想要转换成什么类型的矢量numeric。我建议你应该应用transform函数来完成你的任务。现在我要证明某些“转换异常”:# create dummy data.framed d  char fake_char fac char_fac num1    a         1   1        a   12    b         2   2        b   23    c         3   3        c   34    d         4   4        d   45    e         5   5        e   5让我们运行:> sapply(d, mode)       char   fake_char         fac    char_fac         num "character" "character"   "numeric"   "numeric"   "numeric" > sapply(d, class)       char   fake_char         fac    char_fac         num "character" "character"    "factor"    "factor"   "integer" 现在你可能会问自己“哪里有异常?” 嗯,我碰到了很奇特的事情R,这是不是在最混杂的东西,但它可以迷惑你,特别是如果你滚进睡前阅读。这里是:前两列是character。我故意打电话给第二个fake_char。找出这个character变量与Dirk在他的回复中创建的变量的相似性。它实际上是一个numerical转换为的向量character。3 次和4 次的列是factor,最后一个是“纯粹的” numeric。如果使用transform函数,则可以转换fake_char为变量本身numeric,而不是char变量本身。> transform(d, char = as.numeric(char))  char fake_char fac char_fac num1   NA         1   1        a   12   NA         2   2        b   23   NA         3   3        c   34   NA         4   4        d   45   NA         5   5        e   5Warning message:In eval(expr, envir, enclos) : NAs introduced by coercion但如果你在做同样的事情,fake_char和char_fac,你会很幸运,并摆脱无NA的:> transform(d, fake_char = as.numeric(fake_char),                char_fac = as.numeric(char_fac))  char fake_char fac char_fac num1    a         1   1        1   12    b         2   2        2   23    c         3   3        3   34    d         4   4        4   45    e         5   5        5   5如果您保存已转换data.frame并检查mode并且class,您将获得:> D sapply(D, mode)       char   fake_char         fac    char_fac         num "character"   "numeric"   "numeric"   "numeric"   "numeric" > sapply(D, class)       char   fake_char         fac    char_fac         num "character"   "numeric"    "factor"   "numeric"   "integer"因此,结论是:是的,您可以将character矢量转换为numeric一个,但numeric前提是它的元素是“可转换”的。如果character向量中只有一个元素,那么在尝试将该向量转换为numerical1 时会出错。只是为了证明我的观点:> err mode(err)[1] "character"> class(err)[1] "character"> char char[1]  1 NA  3  4 NA现在,只是为了好玩(或练习),尝试猜测这些命令的输出:> fac fac???> num num???亲切的问候帕特里克伯恩斯!=)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值