【问题标题】:Attempt to set "sep" / "dec" ignored: Error in write.csv format - R尝试设置“sep”/“dec”被忽略:write.csv 格式错误 - R
【发布时间】:2017-03-22 08:37:31
【问题描述】:

有类似的帖子,但没有一个真正解释这个错误是由什么引起的?

我想获得这种 .csv 格式的输入:分隔符“;”和十进制“。”

Parameter;Intensitaet;Wert
se;1;0.027
se;1;0.024
se;1;0.021
se;1;0.018
se;1;0.015
se;1;0.012

我得到的是:

Parameter;Intensitaet;Wert
se;2;0,0572
se;2;0,2
se;2;0,1
se;2;0,4
se;2;0,0795

已尝试过此代码的各种版本:

> write.csv(final, "SEmurgang.csv", row.names = F, quote = F, sep = ";")
Warning message:
In write.csv(final, "SEmurgang.csv", row.names = F, quote = F, sep = ";") :
  Versuch ignoriert 'sep' zu setzen

> write.csv2(final, "SEmurgang.csv", row.names = F, quote = F, dec=".")
Warning message:
In write.csv2(final, "SEmurgang.csv", row.names = F, quote = F,  :
  Versuch ignoriert 'dec' zu setzen

但是,我总是遇到同样的错误。我该如何解决?

【问题讨论】:

标签: r csv


【解决方案1】:

小数点和分隔符在write.csv2 中硬编码。

write.csv2 使用逗号作为小数点,使用分号作为 分隔符,某些西欧地区 CSV 文件的 Excel 约定 语言环境。

如果它们不适合你,你最好使用write.table

write.table 是基本方法,write.csv 和 kin 只是一个方便的包装器。

使用write.table 对我有用。

 xy <- data.frame(Parameter = rep("se", 5),
                 Intensitaet = rep(1, 5),
                 Wert = rnorm(5))
 xy
  Parameter Intensitaet         Wert
1        se           1 -1.014570811
2        se           1 -0.680449323
3        se           1 -0.223736133
4        se           1  0.004270224
5        se           1  0.607427274

 write.table(xy, file = "test.txt", row.names = FALSE, dec = ".", sep = ";", 
              quote = FALSE)
 
system("cat test.txt")
Parameter;Intensitaet;Wert
se;1;-1.01457081089331
se;1;-0.68044932280397
se;1;-0.223736133320336
se;1;0.0042702235293986
se;1;0.607427274081342

【讨论】:

  • 我认为您应该包括有关write.csv 是如何设计以忽略某些参数的相关详细信息....
  • 是的,确实是这样。谢谢@Roman Luštrik。但为什么 write.csv 不起作用?是什么导致了错误?
  • @Danka 因为您要修改的参数不打算在write.csv2write.csv 中修改。您收到的警告非常明确:“Versuch ignoriert 'dec' zu setzen”。只需使用write.table
猜你喜欢
  • 2020-02-24
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
相关资源
最近更新 更多