从数据框中提取文件名

时间:2014-10-07 15:08:42

标签: r

R rookie在这里。

我有一个用于创建输出文件的循环。我使用数据框作为循环的输入,循环运行查询每个" id"数据框中的值。我的数据框中的一列包含输出文件名。我在使用循环动态读取文件名并将其插入write.table语句时遇到了一些麻烦。

工作示例:

ID = c(123,124)
ExtractName = c("sessions.txt","hits.txt") 
Dimensions = c("ga:date", "ga:date") 
Mertics = c("ga:sessions", "ga:hits") 
Extracts = data.frame(ID, ExtractName, Dimensions, Mertics) 

for(i in seq(from=1, to=nrow(Extracts), by=1)){
  id <- Extracts[i,1]
  myresults <- ga$getData(id,batch = TRUE, start.date="2013-12-01", end.date="2014-01-01", metrics = Extracts[i,4], dimensions = Extracts[i,3])

  write.table(myresults, file=***dynamicnamehere***, append=TRUE, row.names = FALSE, col.names = appendcolheads, sep="\t")
}

1 个答案:

答案 0 :(得分:1)

戴维斯,我对你的代码示例稍作修改,因为它产生了一个错误。

要注意的两件事:在创建DataFrame时添加&#34; stringsAsFactors = FALSE&#34;否则文件名是你不想要的因素。

Extracts = data.frame(ID, ExtractName, Dimensions, Mertics,stringsAsFactors=FALSE) 

file - for循环中的参数:file=Extracts$ExtractName[i]

这个稍微改变的代码应该可以为您提供所需的结果。

ID = c(123,124)
ExtractName = c("sessions.txt","hits.txt") 
Dimensions = c("ga:date", "ga:date") 
Mertics = c("ga:sessions", "ga:hits") 
Extracts = data.frame(ID, ExtractName, Dimensions, Mertics,stringsAsFactors=FALSE) 

for(i in seq(from=1, to=nrow(Extracts), by=1)){
  id <- Extracts[i,1]
  myresults <- c(id, start.date="2013-12-01", end.date="2014-01-01", metrics = Extracts[i,4],     dimensions = Extracts[i,3])
  write.table(myresults, file=Extracts$ExtractName[i], append=TRUE, row.names = FALSE, sep="\t")
}