我希望在stackoverflow上已经对此有一个答案,而我只是找不到它。

所需的结果:file.info()调用中的文件大小元素从字节快速转换为KB,MB等。如果输出是i)具有所需大小类型的字符串(例如"96 bytes"或ii),我很好只是一个数字转换,例如,从60963字节到60.963 KB(每个Google)。

复制步骤:

  • 创建一个文件夹来存储文件:
    dir.create("census-app/data")
    
  • 下载文件(〜60KB):
    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/

    10-12 18:50