【发布时间】: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 中一样多),您看到(100和100%)只是数据的表示。在内部,它以数字方式存储(100和1.0)。所以你的问题不在于 R,而在于 Excel。正如 Mike 建议的那样,我相信此时您最好的一步是告诉 Excel 您希望它存储为什么格式。 (使用openxlsx会产生相同的结果。也许您可以找到一种方法来读取 Excel 认为每个单元格的格式,并进行相应的调整。我知道怎么做。) -
可能简单的方法是使用 RStudio 中的 Import Dataset 选项。在数据预览窗口中,为包含“100%”的列选择字符并导入数据。这将在预览窗口中生成适当的代码,您可以使用这些代码获取数据。
标签: r