问题描述
我需要通过将标头(第一行)复制到列变量,然后将第二行复制为R中的标头来读取文件夹中的一组.CSV文件。
我的输入格式是这样
我的输出格式如下
Date = c('3/12/2019','3/14/2019','3/15/2019')
Number = c('24','15.2','27.1')
linc = c('A / B /C / D /E / F','A / B /C / D /E / F','A / B /C / D /E / F')
D1 = data.frame(Date,Number,linc)
很抱歉,bas问题格式。我是初学者
解决方法
以下函数从输入文件中读取一行,然后跳过一行,并使用read.csv
将其余行作为表读取。
readSpecial <- function(con,newcol,...){
if(missing(newcol)) newcol <- "newcol"
firstline <- readLines(con,n = 1)
df1 <- read.csv(con,skip = 1,...)
df1[[newcol]] <- firstline
df1
}
all.equal(D1,readSpecial("test.csv","linc"))
#[1] "Component “Number”: Modes: character,numeric"
#[2] "Component “Number”: target is character,current is numeric"
结果不等于发布的数据,因为在我为测试创建的文件中,列Number
不在引号之间,因此将其读取为数字。
我使用for循环尝试了这种方法,
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.XXXXXXXX.com/home/abc</loc>
</url>
</urlset>