【发布时间】:2014-03-12 22:17:29
【问题描述】:
我刚刚在a previous question 上收到了一些关于将文本行附加到 .txt 输出开头的好建议。这对我的示例数据很有效,但我现在意识到我的实际数据有一个 POSIXltclass 变量,其中包含日期和小时值之间的空格(例如“2001-01-01 10:00:01” )。这似乎导致 R 无法理解它们有多少列数据。我已经尝试了对上一个问题的两个建议的变化,但似乎没有任何效果。我什至尝试编写为 .csv 文件以更好地定义分色,但这也失败了。
任何帮助将不胜感激。我可能在这里做一些非正统的事情吗?我是否应该制作一个单独的“readme.txt”文件来包含变量描述并避免所有这些挫败感?我希望数据集对未来的用户来说是合乎逻辑且不言自明的。
示例:
###Example dataset
Head <-
"#variables:
#sal - Salinity [PSU]
#temp - Temperature [degrees Celsius]
#datetime - Date [yyyy-mm-dd hh:mm:ss]
"
n <- 10
df <- data.frame(sal=runif(n, 30, 37), temp=runif(n, 15, 17), datetime=as.POSIXlt("2001-01-01 10:00:01"))
df
###Create .txt (or .csv?)
#option 1
fn <- "data.txt"
sink(fn)
cat(Head)
df
sink()
read.table(fn)
#Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
# line 1 did not have 5 elements
#option 2
fn <- "data.txt"
writeLines(Head, fn)
write.table(df, fn, append=TRUE, quote=FALSE)
#Warning message:
#In write.table(df, fn, append = TRUE, quote = FALSE) :
# appending column names to file
read.table(fn)
#Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
# line 1 did not have 5 elements
#option 3
fn <- "data.csv"
sink(fn)
cat(Head)
write.csv(df)
sink()
read.csv(fn, header=TRUE)
#Error in read.table(file = file, header = header, sep = sep, quote = quote, :
# more columns than column names
【问题讨论】: