我希望在stackoverflow上已经对此有一个答案,而我只是找不到它。
所需的结果:将file.info()
调用中的文件大小元素从字节快速转换为KB,MB等。如果输出是i)具有所需大小类型的字符串(例如"96 bytes"
或ii),我很好只是一个数字转换,例如,从60963
字节到60.963
KB(每个Google)。
复制步骤:
dir.create("census-app/data")
download.file("http://shiny.rstudio.com/tutorial/lesson5/census-app/data/counties.rds",
"census-app/data/counties.rds")
file.info()$size
返回文件大小(以字节为单位):file.info("census-app//data//counties.rds")$size
[1] 60963
从那里,我被困住了。我意识到我可以进行一些复杂/手动的解析和计算来进行转换(请参阅Converting kilobytes, megabytes etc. to bytes in R)。
但是,我希望我可以简单地使用基本函数或类似的东西:
format(file.info("census-app//data//counties.rds")$size, units = "KB")
[1] "60963"
# Attempt to return file size in KB simply returns the size in bytes
# NOTE: format(x, units = "KB") works fine when I
# pass it object.size() for an object loaded in R
最佳答案
object.size()
函数对其结果进行这种格式设置,但是它的目的是告诉您传递给它的R对象的大小。它不设置为采用任意值。
但是,我们可以“窃取”其中的某些格式化逻辑。你可以用
utils:::format.object_size(60963, "auto")
# [1] "59.5 Kb"
这样,我们可以调用未导出的格式化功能。您可以在
?format.object_size
帮助页面上调出其他格式选项。请注意,它使用1 Kb = 1024字节(而不是示例中的1000)的规则。关于r - 如何快速将file.info()的大小元素从字节转换为KB,MB,GB等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29787452/