首页 > 解决方案 > 如何处理具有混合值类型的变量?

问题描述

我的列中既有字母又有数字。我关心的是如何对待它们,值得使用它们还是放弃它们?此外,如果它们包含有用的信息,我应该如何处理它们?各自的变量是:x.14、x.2、x.10。数据框为:

 $ X   : int  0 1 2 3 4 5 6 7 8 9 ...

 $ x.0 : chr  "b" "a" "a" "b" ...

 $ x.1 : chr  "30,83" "58,67" "24,5" "27,83" ...

 $ x.2 : chr  "f" "4.46" "0.5" "1.54" ...

 $ x.3 : chr  "u" "u" "u" "u" ...

 $ x.4 : chr  "g" "g" "g" "g" ...

 $ x.5 : chr  "w" "q" "q" "w" ...

 $ x.6 : chr  "v" "h" "h" "v" ...

 $ x.7 : chr  "1.25" "3.04" "1.5" "3.75" ..

 $ x.8 : chr  "t" "t" "t" "t" ...

 $ x.9 : chr  "t" "t" "f" "t" ...

 $ x.10: chr  "t" "6" "f" "5" ...

 $ x.11: chr  "f" "f" "f" "t" ...

 $ x.12: chr  "g" "g" "g" "g" ...

 $ x.13: chr  "202.0" "43.0" "280.0" "100.0" ...

 $ x.14: chr  "f" "560" "824" "3" ...

 $ x.20: chr  "t" "t" "t" "t" ...

 $ x.17: chr  "116,94256980957068" "225,60625307204938" "92,08407670672422" "104,16291777029285" ...

 $ x.18: chr  "0,5787085579422866" "25,409645364400404" "2,3173371593153314" "8,04533772976642" ...

 $ x.19: chr  "202000.0" "43000.0" "280000.0" "100000.0" ...

 $ x.16: chr  "f" "f" "f" "f" ...

 $ y   : chr  "good" "good" "good" "good" ...`

谢谢你的帮助!

标签: r

解决方案


看起来不同的列以不同的方式转换,它们需要重新转换。

一些列 (x.9, x.11) 表明,'t' 和 'f' 是 TRUE 和 FALSE 的首字母缩写词。它们可以转换为 1 和 0 或保持原样。

x.14 中的“f”,x.2 似乎是 NA 或 0 以奇怪的方式转换。如果是这样,您可以将“f”更改为 NA(或 0)并将列转换为数字。否则它们应该被视为因素,如果数字不重复,那不是一个好主意。

x.1, x.17, x.18 似乎是用逗号作为小数点的数字。将“,”更改为“。”并将它们转换为数字会很好。

在 x.10 的情况下并不那么明显,其中存在数字“f”和“t”,但是,数字的整数性质可能表明“f”和“t”分别为 0 和 1,特别是如果列中不存在这些数字。否则,将“f”和“t”转换为 NA 可能更安全。


推荐阅读