我在导出我想要的数据时遇到问题.CSV文件。只有在这个导出的文件中,它总是这样,其他导出的文件都可以。你能帮我吗?
我认为这个问题来自我的PC语言,因为我使用的是德语PC,但R是德语,R studio是英语。我试图将它们改为同一种语言,但它没有成功!
问题是否可能来自语言?
这是输出的样子,如果你注意到平均值,那么数字就会以奇怪的方式表示。
导出到.CSV时的结果:
这张照片显示了相同的矩阵,但在R studio中:
答案 0 :(得分:2)
不要信任excel,因为它会在打开时转换csv文件,具体取决于您的Windows语言设置。用文本编辑器查看csv,如果csv没问题(我猜),只需将你的windows系统语言改为"英语(美国)",关闭全部 excel实例然后打开csv。我也在德国的PC上,并且总是遇到同样的问题。
答案 1 :(得分:0)
我不是R用户,但它似乎是一个语言环境问题。尝试使用Sys.setlocale("LC_ALL","English")
答案 2 :(得分:0)
问题是Excel中的千位分隔符。
stringsAsFactors = F
)并手动将每个.
替换为""
,然后将,
替换为.
。提及.
作为特殊含义的模式(?regex
)。这就是为什么我们在将其视为一个简单的点时,必须将其标记为\\.
的普通点。我保存的文件.
为千位分隔符,,
为小数点分隔符Test.csv
。
csv <- read.csv2("Test.csv", header = F, stringsAsFactors = F)
# V1
#1 15.123.515,00 ## <- these are characters/strings, not numbers
#2 15.241.241,00
#3 1.251.636,00
#4 46.345.325,00
#5 343.434.536,00
apply(csv, 2, function(x) as.numeric(gsub(",",".",gsub("\\.", "", x))))
# V1
# [1,] 15123515 ## <- these are numeric/numbers now
# [2,] 15241241
# [3,] 1251636
# [4,] 46345325
# [5,] 343434536
使用apply
和参数2
,我会在每列上应用替换(gsub
)。如果您只有几列,则可以单独更改它们,而无需使用apply
。