Как напечатать скрытый столбец в CSV-файл в R - PullRequest
1 голос
/ 11 мая 2019

Я новичок в R, использую другие сценарии.Я хочу сохранить фрейм данных в CSV-файл.Там должно быть три столбца.

print(resultData)
                Name A        Name B
1995-06-07      9.866522e+00  2.717378e+00
1995-06-08      9.867985e+00  2.715913e+00
1995-06-09      9.859632e+00  2.707559e+00

Когда я делаю write.csv()

write.csv(resultData, file="log.txt", row.names=TRUE)

"","Name A","Name B"
"10902",9.86301036126783,2.68187056180675
"10903",9.86184368463656,2.68303587888967
"10904",9.85092788914247,2.69383380526988

Я хочу сохранить первый столбец в формате даты, а не в виде числа, но как это сделатьэто?

Ответы [ 3 ]

2 голосов
/ 12 мая 2019

Ваш объект является объектом xts, поэтому для его записи используйте write.zoo, а не write.csv. Если x является вашим объектом, то:

library(xts)

# write.zoo(x, "myfile.dat")
write.zoo(x, stdout())
## "Index" "Name A" "Name B"
## "1952-01-04" 0.00167228338845363 0.00167228338845363
## "1952-01-07" 0.00125404832816473 0.00125404832816473
## "1952-01-08" -0.00252429818470144 -0.00252429818470144
## "1952-01-09" -0.00589414448984377 -0.00589414448984377
## "1952-01-10" -0.000864743756013115 -0.000864743756013115
## "1952-01-11" 0.00413940559567309 0.00413940559567309
1 голос
/ 11 мая 2019

У вас есть zoo объект

class(resultData)
#[1] "xts" "zoo"

которые не имеют имен строк

rownames(resultData)
#NULL

Преобразуйте их в data.frame и затем используйте write.csv

write.csv(data.frame(resultData), file="log.txt")

или, если хотите, date как отдельный столбец

write.csv(cbind(date = index(resultData), data.frame(resultData)), 
          file="log.txt", row.names = FALSE)
1 голос
/ 11 мая 2019

Похоже, ваши даты хранятся как количество дней с August 30th 1965. Поскольку файлы CSV - это просто запятые и текст, «правильное» форматирование будет зависеть от того, что вы хотите сделать с файлом CSV.

Если вы хотите легко понять строку даты, попробуйте базовую функцию R as.Date:

> as.Date(10902, origin = "1965-08-30")
[1] "1995-07-06"

Переформатирование вашего первого столбца может быть сделано так:

resultData[,1] = as.Date(resultData[,1], origin = "1965-08-03")
colnames(resultData)[1] = "Date" #Adding column name to make beautiful
write.csv(resultData, file="log.txt", row.names=TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...