读取csv,跳过三行,但在data.frame中包含标题名称
我想读取csv文件,跳过三行(标题除外),但在data.frame中包含标题名称。我尝试了以下操作,但标题名称错误:读取csv,跳过三行,但在data.frame中包含标题名称,r,csv,R,Csv,我想读取csv文件,跳过三行(标题除外),但在data.frame中包含标题名称。我尝试了以下操作,但标题名称错误: > sine = read.csv(file="sine.csv",head=TRUE,sep=",", skip=3, check.names=TRUE) > colnames(sine) [1] "X0" "X0.0" "X0.0.1" "X0.0.2" "None" "X1.0" "X0.0.3" "None.1" "X.." [10
> sine = read.csv(file="sine.csv",head=TRUE,sep=",", skip=3, check.names=TRUE)
> colnames(sine)
[1] "X0" "X0.0" "X0.0.1" "X0.0.2" "None" "X1.0" "X0.0.3" "None.1" "X.."
[10] "X0.1" "X0.2"
当我在不跳过三行的情况下读取数据集时,标题名称是确定的:
> sine = read.csv(file="sine.csv",head=TRUE,sep=",", skip=0, check.names=TRUE)
> colnames(sine)
[1] "reset"
[2] "angle"
[3] "sine"
[4] "multiStepPredictions.actual"
[5] "multiStepPredictions.1"
[6] "anomalyScore"
[7] "multiStepBestPredictions.actual"
[8] "multiStepBestPredictions.1"
[9] "anomalyLabel"
[10] "multiStepBestPredictions.multiStep.errorMetric..altMAPE..steps..1..window.1000.field.sine"
[11] "multiStepBestPredictions.multiStep.errorMetric..aae..steps..1..window.1000.field.sine"
我做错了什么?类似这样的事情
foo <- read.csv("http://www.ats.ucla.edu/stat/r/faq/test.csv", header=T)
foo
# make model mpg weight price
# 1 amc concord 22 2930 4099
# 2 amc oacer 17 3350 4749
# 3 amc spirit 22 2640 3799
# 4 buick century 20 3250 4816
# 5 buick electra 15 4080 7827
colnames(foo)
# [1] "make" "model" "mpg" "weight" "price"
bar <- read.csv("http://www.ats.ucla.edu/stat/r/faq/test.csv", header=T, skip=3)
bar
# amc spirit X22 X2640 X3799
# 1 buick century 20 3250 4816
# 2 buick electra 15 4080 7827
colnames(bar)
# [1] "amc" "spirit" "X22" "X2640" "X3799"
使用header=TRUE,而不是head。通过链接的答案,解决方案是
read.csv(“sine.csv”,header=FALSE,skip=4,col.names=names(read.csv(“sine.csv”,nrow=0))
。4是为了允许标题行也被跳过。@RichardScriven谢谢你,这终于起作用了expected@RichardScriven请将此作为一个答案发布,以便我可以接受。我评论中的解决方案直接来自链接的答案,因此请前往那里并向上投票MrFlick,因为他是原始海报。他应该为此获得荣誉。谢谢你,我投了更高的票,但@RichardScriven解决方案似乎更简单。我同意Richard的解决方案更优雅。@WakanTanka,请将Richard Scriven的解决方案作为答案发布,然后结束问题。
all_content = readLines("http://www.ats.ucla.edu/stat/r/faq/test.csv")
skip_second = all_content[c(c(-2:-4))]
foo2 = read.csv(textConnection(skip_second),
header = TRUE, stringsAsFactors = FALSE)
foo2
# make model mpg weight price
# 1 buick century 20 3250 4816
# 2 buick electra 15 4080 7827
colnames(foo2)
# [1] "make" "model" "mpg" "weight" "price"