r - read.csv 错误地将字符串转换为整数
问题描述
这是对该问题的后续跟进:read.csv falsly converts string to integer
我有一个 CSV 文件(玩具示例):
V1,V2,V3
1,00010,a
2,10010,v
我想将第二列读取为字符串值。
我知道 read.csv 中的 colClasses 方法错误地将字符串转换为整数问题。
但是,我的数据文件包含 5,000 多列混合变量类型,而只有一列有问题。我可以做这样的事情:
df <- read.csv("data.csv"); temp <- sapply(df,class); temp[2] <- "character"; df <- read.csv("data.csv",colClasses=temp)
但这是一种非常丑陋的编码方式。有没有更勤奋的方法来做到这一点?
解决方案
colClasses
如果使用命名向量,则不必指定每一列。
txt <- "V1,V2,V3
1,00010,a
2,10010,v
"
df <- read.csv(text = txt, colClasses = c(V2 = "character"))
str(df)
#> data.frame': 2 obs. of 3 variables:
#> $ V1: int 1 2
#> $ V2: chr "00010" "10010"
#> $ V3: chr "a" "v"
推荐阅读
- javascript - 在 trix 编辑器中检测添加链接确认事件
- elasticsearch - Elasticsearch 在几分钟内响应聚合查询
- python - 我的 For 循环在 Python 中与 print 和 file-write 的工作方式不同
- linux - linux如何移动列出的文件?
- json - 使用 jq 或 Python 解析 JSON
- c++ - C++ 中 sizeof() 运算符的功能
- php - 如何将数据转储到视图中?
- python - 如何在 python 中修复 tkinter 问题?
- django - TemplateDoesNotExist 在 /edit-narration/13/edit/
- windows - Windows 防火墙 - Laravel Artisan Serve - 在入站规则中允许端口(不起作用)