我有一个csv,其中一些列是引号之间的整数:
"14", "3", "6", "3"
和其他列是不带引号的整数:3, 5, 0, 2
当我将csv导入R
时,有没有办法自动检测引号之间的整数作为字符或分类的列和整数而没有引号作为整数的列?
答案 0 :(得分:4)
将quote = ""
添加到read.csv
语句中。 as.is=TRUE
确保字符而不是因子用于引用的列。为避免标题中的引号,我们将col.names
设置为未使用quotes=""
的第二个读取版本的名称。如果希望引号成为数据的一部分,则省略标记为##的最后一行。
Lines <- '"a","b"\n"1",1'
DF <- read.csv(text = Lines, quote = "", as.is = TRUE,
col.names = names(read.csv(text = Lines, nrow = 1)))
DF[] <- lapply(DF, function(x) if (inherits(x, "character")) gsub('"', '', x) else x) ##
,并提供:
> str(DF)
'data.frame': 1 obs. of 2 variables:
$ a: chr "1"
$ b: int 1
答案 1 :(得分:0)
您可以使用包readr
:
> readr::read_csv("test.txt", col_types = "ci")
# A tibble: 1 × 2
`2` `3`
<chr> <int>
1 14