首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CSV文件导入包含逗号的变量

从CSV文件导入包含逗号的变量
EN

Stack Overflow用户
提问于 2021-11-17 21:53:56
回答 1查看 81关注 0票数 0

我的数据是来自Microsoft的CSV文件。该文件包含几个数字变量(例如工资、权重),这些变量的格式如下: 123,456 (12万3456)。

当我使用以下命令将这个文件("old_file")导入R时:my_file = read.csv("old_file.csv"),所有的数值变量都会自动转换为因子变量类型。

为了解决这个问题,在将文件导入R后,我尝试手动将这些变量转换为数值变量类型:

代码语言:javascript
复制
my_file$var_1 = as.numeric(my_file$var_1) 

然而,这样做似乎“扭曲”了数据。例如,自然发生的"var_1“值似乎消失了。我还绘制了这些数据的一些直方图,并且这些数值转换变量的分布与预期的分布不匹配。

通过打开Excel电子表格并单击"format“按钮,从数字变量中删除”逗号“,并在每个数字的末尾添加".00”,我就能够解决这个问题。例如,123,456现在变成123456.00。

一旦我在原来的Excel电子表格中做了这个更改,问题就解决了。

我的问题:是否有办法在R中解决这个问题,而不是在原始的Excel电子表格中手工完成这个问题?我只是碰巧捕捉到这个格式化错误--在将来,有什么方法可以自动防止这种情况发生在R中吗?例如,如何确保将“在Excel文件中显示为数字”的变量作为数字类型导入R中?

EN

回答 1

Stack Overflow用户

发布于 2021-11-17 22:11:48

我相信,通过将excel文件保存为csv (应该在数字周围插入引号),然后使用read_csv()函数从重新读卡器包读取文件,可以解决这个问题。

测试数据:

代码语言:javascript
复制
Value1,Value2
"123,456","456,678"
"234,567","445,678,899"
代码语言:javascript
复制
library(readr)
read_csv("~/Desktop/test.csv")
#> Rows: 2 Columns: 2
#> Warning in min(width - (crayon::col_nchar(types) + nchar(counts) + 4)): no non-
#> missing arguments to min; returning Inf
#> ── Column specification ────────────────────────────────────────────────────────
#> 
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> # A tibble: 2 × 2
#>   Value1    Value2
#>    <dbl>     <dbl>
#> 1 123456    456678
#> 2 234567 445678899

这些数字现在是数字(双精度整数)。

与read.csv()函数相比:

代码语言:javascript
复制
read.csv("~/Desktop/test.csv")
#>    Value1      Value2
#> 1 123,456     456,678
#> 2 234,567 445,678,899

(数字格式不正确)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70012048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档