【问题标题】:How to import a column of data with "%" with readxl?如何用readxl导入一列带有“%”的数据?
【发布时间】:2019-08-02 01:36:49
【问题描述】:

我正在从 Excel 导入数据。我正在使用包 readxl 来读取数据。我有一列包含数字和百分比值的数据。因此,我想将这一列数据作为文本导入。

我在导入数据时使用了instructions on the package documentation page如何定义列类型。但是,即使将数据作为文本导入,它仍会将百分比转换为数字。

这是我遇到问题的字段的数据外观示例:

data <- c(3200, 100%, 100, 100%)

导入后的数据框显示为字符而非数字。我期望的结果与上面的向量相同。但是,我看到的情况如下:

output_after_import <- c(3200, 1, 100, 1)

在 Excel 中查看数据时,当我将数据类型从“常规”更改为“文本”时,出现与“output_after_import”中所示相同的问题。

【问题讨论】:

  • 我想你可以指定colClass
  • 能否打开excel文件并保存为文本列
  • readxl 中的问题不像 Excel 中那样严重。在 Excel 中(与在 R 中一样多),您看到100100%)只是数据的表示。在内部,它以数字方式存储1001.0)。所以你的问题不在于 R,而在于 Excel。正如 Mike 建议的那样,我相信此时您最好的一步是告诉 Excel 您希望它存储为什么格式。 (使用openxlsx 会产生相同的结果。也许您可以找到一种方法来读取 Excel 认为每个单元格的格式,并进行相应的调整。我知道怎么做。)
  • 可能简单的方法是使用 RStudio 中的 Import Dataset 选项。在数据预览窗口中,为包含“100%”的列选择字符并导入数据。这将在预览窗口中生成适当的代码,您可以使用这些代码获取数据。

标签: r


【解决方案1】:

试试这个:

library(readxl)
ExcelFile <- read_excel("ExcelFile.xlsx", col_types = c("numeric", "text"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多