R将数值上传到布尔列-为什么?

6vl6ewon  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(118)

我想上传一个Excel文件作为R中的 Dataframe 。这是一个包含大量数字和一些#NV值的大文件。
对于大多数列(总共有4,000列)来说,上载效果很好。但是对于某些列,R会将列更改为“TRUE”或“FALSE”,从而创建一个布尔列。
我不希望这样,因为所有列都应该是数字。
你知道R为什么这么做吗?

gfttwv5a

gfttwv5a1#

如果您提供代码片段,将非常有帮助,因为有许多不同的Excel到 Dataframe 库/方法/行为。

但是假设您使用的是writexlread_excel函数有一个guess_max参数,用于这种情况。guess_max默认为1000。
尝试df <- read_excel(path = filepath, sheet = sheet_name, guess_max = 100000)
由于 Dataframe 不能在同一列中有不同的数据类型,read_excel必须读取您的excel文件,并猜测每列应该是什么数据类型,然后才能实际填充 Dataframe 。如果一列碰巧在前1000行中只有NA值,read_excel将假设您有一列布尔值。然后在以后的行中遇到的所有后续值都将相应地进行强制转换。因此,如果将guess_max设置为较大的值,则会使read_excel变慢,但可能会避免将数值强制转换为布尔值。

相关问题