首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cbind转换因子为数值

cbind转换因子为数值
EN

Stack Overflow用户
提问于 2015-11-23 13:16:04
回答 1查看 5.9K关注 0票数 5

不知道为什么会发生这种事。我有一个带有以下变量的dataframe df2

代码语言:javascript
复制
          EVTYPE TOTAL_FATALITIES TOTAL_INJURIES
          (fctr)            (dbl)          (dbl)
1        TORNADO             5633          91346
2 EXCESSIVE HEAT             1903           6525
3    FLASH FLOOD              978           1777
4           HEAT              937           2100
5      LIGHTNING              816           5230
6      TSTM WIND              504           6957

    > df2$TOTAL_FATALITIES

 [1] 5633 1903  978  937  816  504  470  368  248  224  206  204  172  160  133  127  103  101  101

    > df2$EVTYPE

 [1] TORNADO           EXCESSIVE HEAT    FLASH FLOOD       HEAT              LIGHTNING        
 [6] TSTM WIND         FLOOD             RIP CURRENT       HIGH WIND         AVALANCHE        
[11] WINTER STORM      RIP CURRENTS      HEAT WAVE         EXTREME COLD      THUNDERSTORM WIND
[16] HEAVY SNOW        STRONG WIND       BLIZZARD          HIGH SURF        
985 Levels:    HIGH SURF ADVISORY  COASTAL FLOOD  FLASH FLOOD  LIGHTNING ... WND

    > df2$TOTAL_INJURIES

 [1] 91346  6525  1777  2100  5230  6957  6789   232  1137   170  1321   297   309   231  1488  1021
[17]   280   805   152

我正在尝试创建一个名为SevType的新列--在这里我将存储一个值是损伤还是致命。

但是,当我在df2$EVTYPE上使用cbind时,它会将该因子转换为数字,如下所示。

代码语言:javascript
复制
    > head(cbind(Event=df2$EVTYPE,Total = df2$TOTAL_INJURIES,Severity="INJURE"))
     Event Total   Severity
[1,] "834" "91346" "INJURE"
[2,] "130" "6525"  "INJURE"
[3,] "153" "1777"  "INJURE"
[4,] "275" "2100"  "INJURE"
[5,] "464" "5230"  "INJURE"
[6,] "856" "6957"  "INJURE"

注意,Event在1,已经从龙卷风变为834。

对为什么会发生这种事有什么暗示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 13:20:00

我们是cbind向量,输出将是matrixmatrix只能容纳一个class。因此,如果有任何向量是非数值的,它将把整个矩阵转换为“字符”,并且由于第一列已经是factor,我们得到了该因子的数值级别。最好是使用data.frame

代码语言:javascript
复制
data.frame(Event=df2$EVTYPE,Total = df2$TOTAL_INJURIES,Severity="INJURE")

或者我们可以使用bind_colsdplyr中的data_frame

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33872034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档