r - 读取csv文件后如何将因子类型转换为R中的数字类型?
问题描述
读取 csv 文件后
data<-read.table(paste0('C:/Users/data/','30092017ARB.csv'),header=TRUE, sep=";")
我在这里尝试了所有建议但是,我收到所有建议的警告
Warning message:
NAs introduced by coercion
甚至在这篇文章中也提到了一些人:
“这篇文章中的每个答案都未能为我生成结果,正在生成 NA。”
知道如何解决这个问题吗?
附录:在下图中,您可以看到此处建议的一种可能方法
但是,我总是一样NA
。
解决方案
百分号显然是问题所在。将 替换为"%"
空字符串 ,""
然后转换为数字。
data[[3]] <- sub("%", "", data[[3]])
data[[3]] <- as.numeric(data[[3]])
你可以在一行代码中做到这一点,
data[[3]] <- as.numeric(sub("%", "", data[[3]]))
另外,关于读取数据的两个注意事项。
首先,一些文件使用分号作为列分隔符。这在小数点为逗号的国家非常常用。这就是为什么 R 有两个函数来读取 CSV 格式的文件。
这些函数都是对read.table
一些默认值的调用。
read.csv
- 设置参数header = TRUE
和sep = ","
.read.csv2
-设置参数header = TRUE
和。sep = ";"
dec = ","
有关完整说明,请参阅read.table或在 R 提示符处运行help("read.table")
。
其次,如果在读取数据时从一开始就factor
使用参数,则可以避免问题。stringsAsFactors = FALSE
推荐阅读
- r - 从github上传数据
- generics - 当主构造函数是通用的时,如何在 Kotlin 中制作具体的辅助构造函数?
- ruby-on-rails - 点击提交时,我的 Rails 应用程序表单显示错误消息
- python - 如何将 Django App 部署到 1and1 (ionos)
- android - 在 Android SDK 29 中将“play-services-base”17.1.0 更新到 17.2.0 后,应用程序不断崩溃
- html - HTML5 表单验证消息
- javascript - Javascript replaceChild 不显示消息
- python-sphinx - 交互式会话中的空白行问题
- javascript - 如何使用cloudfunction和nodejs将数字转换为条形码
- django - Django模板:在模板中显示对象不使用视图