R-转换数据时逐行导出,添加“导出”&引用;在某些地方,而不是其他地方,同时也移除NA

R-转换数据时逐行导出,添加“导出”&引用;在某些地方,而不是其他地方,同时也移除NA,r,export,export-to-csv,na,R,Export,Export To Csv,Na,我是R的新手,但我需要将数据从data.table导出到CSV,但是我需要添加页眉和页脚行,并在过程中转换数据 我走的路线是通过水槽和猫。这允许我生成页眉和页脚行,并通过一个页面将30000多行data.table转储到CSV sink(filelocation) cat("\"EX1\",1,\"EX2\",",time,sep="") #header cat("\n") a_ply(datatable1, 1, function(x){ cat("\"L1\",") cat(paste(x,

我是R的新手,但我需要将数据从data.table导出到CSV,但是我需要添加页眉和页脚行,并在过程中转换数据

我走的路线是通过水槽和猫。这允许我生成页眉和页脚行,并通过一个页面将30000多行data.table转储到CSV

sink(filelocation)
cat("\"EX1\",1,\"EX2\",",time,sep="") #header
cat("\n")
a_ply(datatable1, 1, function(x){
cat("\"L1\",")
cat(paste(x, collapse=","))
cat("\n")
}) 
cat("\"EX3\",",EX4, sep="") #footer
sink()
我所有这些都工作得很好,但是我正在努力解决的部分是,我需要转换数据表中保存的数据。需要将数据表中的某些列导出为“值”,而将其他列保留为值。还需要删除NA值,将其保留为“”,或干脆不保留

e、 g

这条线

SystemID    UserID      Age Active  Status  LastAccess  LastAccessTime  Count
1234567     852741      39  Y       1       NA          NA             12
目前出口为

1234567852741,39,Y,1,NA,NA,12

虽然我需要将其导出为

1234567,“852741”,39,“Y”,1,“12

我需要导出的data.tables有30000多个长度,因此我想知道是否有更好的方法来执行此操作,或者如何构造代码以动态转换每一行,然后将该行转换为文件并移动到下一行


我无法更改这些文件将要进入的系统,因此很遗憾,我必须处理数据文件的严格性质。

如果我理解正确,我认为函数write.table()可以完成您想要的一切

与其在编写数据时“转换”数据,不如直接修改数据帧,直到其具有所需的格式?例如,要将UserID列作为字符串写入,只需在写入表之前将该列转换为字符串即可

myData$UserID<-as.character(myData$UserID)

注意na=”“参数,它告诉它如何格式化na值。对于页脚行,可以单独处理,并使用“append=TRUE”参数

嗯。我会调查一下,看看能不能想出一个解决办法。您知道是否可以将整数/数字NA与字符NA区别对待?您可以将字符NAs更改为空字符串。看起来您将
LastAccessTime
作为字符串,并且希望将其作为带引号的空字符串写入。因此,请尝试像这样替换源数据帧中的字符NAs
myData$LastAccessTime[is.na(myData$LastAccessTime)]>=''
,然后您可能需要使用
write.table()
中的
quote=TRUE
参数来确保引号被写出。感谢您的帮助,我越来越接近所需的解决方案。但是,我尝试使用提供的代码替换数据框中的NAs,但它没有改变任何内容。哎哟……看起来我的评论中有输入错误,请尝试
myData$LastAccessTime[is.na(myData$LastAccessTime)]
write.table(myData,outFilePath,sep=",",na="",row.names=FALSE)