尝试设置“sep”/“dec”被忽略:写入.csv格式时出错- R

vohkndzv  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(179)

有类似的帖子,但没有一个真正解释了这个错误是由什么引起的?
我希望获得以下.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

但是,我总是得到相同的错误。我该如何修复它?

vom3gejh

vom3gejh1#

小数和分隔符硬编码为write.csv2
write.csv2使用逗号作为小数点,分号作为分隔符,这是某些西欧语言环境中CSV文件的Excel约定。
如果它们不适合您,您最好使用write.table
write.table是基本方法,write.csv和kin只是一个方便的 Package 器。
使用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
wribegjk

wribegjk2#

format(df, digits = 3, trim = TRUE)

trim = TRUE参数将删除多余的空间。

相关问题