我想上传一个Excel文件作为R中的 Dataframe 。这是一个包含大量数字和一些#NV值的大文件。对于大多数列(总共有4,000列)来说,上载效果很好。但是对于某些列,R会将列更改为“TRUE”或“FALSE”,从而创建一个布尔列。我不希望这样,因为所有列都应该是数字。你知道R为什么这么做吗?
gfttwv5a1#
如果您提供代码片段,将非常有帮助,因为有许多不同的Excel到 Dataframe 库/方法/行为。
但是假设您使用的是writexl,read_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变慢,但可能会避免将数值强制转换为布尔值。
writexl
read_excel
guess_max
df <- read_excel(path = filepath, sheet = sheet_name, guess_max = 100000)
1条答案
按热度按时间gfttwv5a1#
如果您提供代码片段,将非常有帮助,因为有许多不同的Excel到 Dataframe 库/方法/行为。
但是假设您使用的是
writexl
,read_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
变慢,但可能会避免将数值强制转换为布尔值。