我的数据框有一列A,字符串形式为
> df$A
[1] "2-60", "2-61", "2-62", "2-63" etc
我使用write.csv保存了表格,但是当我用Excel打开它时,列A显示为日期格式:
Feb-60
Feb-61
Feb-62
Feb-63
etc
任何人都知道我该怎么做才能避免这种情况?
我调整了write.csv的参数,但没有任何效果,我似乎无法在Stack Overflow中找到一个帮助解决这个问题的例子。
答案 0 :(得分:7)
正如评论中所说,这是一种excel行为,而不是R'。这不能被停用:
Microsoft Excel已预编程,可以更轻松地输入日期。对于 例如,12/2更改为12月2日。这对你来说非常令人沮丧 输入您不希望更改为日期的内容。不幸 无法关闭此功能。但是有办法解决它。
根据文章提出的第一个建议的方法是没有用的,因为它依赖于更改单元格格式,但是当你在excel中打开.csv文件时已经太晚了(它已经转换为表示日期的整数) 。
然而,有一个有用的提示:
如果您只输入几个号码,则可以停止Excel 输入以下内容将其更改为日期:
- 输入数字之前的撇号('),例如'11 -53或'1/47。按下后,单元格中不会显示撇号 输入
因此,您可以使用
将数据显示为原始数据vec <- c("2-60", "2-61", "2-62", "2-63")
vec <- paste0("'", vec)
请记住,如果你在R中再次读取它们,那么值仍会有撇号,所以你可能不得不使用
vec <- sub("'", "", vec)
这可能不太理想,但至少可行。
另一种方法是将文本作为excel公式包含在=" "
中,但结果相同并使用更多字符。
答案 1 :(得分:1)
另一种解决方案 - 有点单调乏味,在Excel中使用导入文本文件,单击对话框,在文本导入向导的第3步中,您可以选择设置列数据格式,使用&#34 ;文本&#34;对于具有&#34; 2-60&#34;,&#34; 2-61&#34;,&#34; 2-62&#34;,&#34; 2-63&#34;的列。如果您使用常规(默认),Excel会尝试智能并为您转换答案。