我将首先使用count.fields
来确定数据中有多少列。您可以在第一行执行此操作。
然后,从那里,您可以使用rep
您的colClasses
.
它很丑,但有效。这是一个例子:
前几行只是在您的工作区中创建一个虚拟 csv 文件,因为您没有提供可重现的示例。
X <- tempfile()
cat("A,B,C,D,E,F",
"1,2,3,4,5,6",
"6,5,4,3,2,1", sep = "\n", file = X)
这是实际答案开始的地方。在下面的两个地方将“x”替换为您的实际文件名。这-2
是因为我们有两列已经被考虑在内。
Y <- read.csv(X, colClasses = c(
"numeric", "numeric", rep("character", count.fields(textConnection(
readLines(X, n=1)), sep=",")-2)))
# Y <- read.csv("file.csv", colClasses = c(
# "numeric", "numeric", rep(
# "character", count.fields(readLines(
# "file.csv", n = 1), sep = ",")-2)))
str(Y)
# 'data.frame': 2 obs. of 6 variables:
# $ A: num 1 6
# $ B: num 2 5
# $ C: chr "3" "4"
# $ D: chr "4" "3"
# $ E: chr "5" "2"
# $ F: chr "6" "1"