R 不会将数据识别为数字
R won't recognize data as numeric
自从 Excel 的上次更新后,R 将无法将我的文件识别为数字文件;甚至是我过去使用的那些。
我相信我的问题的根源是我的 Excel 是法语并且已经将默认小数点从“。”更改为到“,”(但这在过去 5 年中从未引起过问题)。
为了找出问题的根源,我尝试只使用一列数据(都带有 . 和 ,),但 R 总是给我这个错误:
"Error: (list) object cannot be coerced to type 'double'"
这是数据示例(保存为 data.csv 文件)
23.15
23.35
23.46
20.88
20.77
22.05
21.5
22.65
21.93
22.65
22.47
22.75
22.05
21.95
22.3
19.48
19.44
20.55
20.5
21.65
20.83
21.85
21.77
21.95
23.35
23.55
23.86
21.38
21.29
22.35
22.6
我都用过:
read.csv AND read.csv2 (read.csv2 is the way to go)
在 R 中导入后,如下所示:
但是当我问
is.numeric(data)
我明白了
> [1] FALSE
如果我试图胁迫:
as.numeric
我明白了
> Error: (list) object cannot be coerced to type 'double'
我真的很茫然;这似乎是一个糟糕但简单的兼容性问题。感谢您的帮助。
仅供参考,我已经解决了这个问题:
- 转换所有旧的“.”到 ","(否则 Excel 不会将它们视为数字,R.
也不会
- 将 Excel 中的默认语言从法语更改为英语。因为我有 mac,我只能更改 "editing" 而不是默认显示语言。
- 我笔记本电脑的默认语言是英语。
我解决了这个问题。原来我在多个问题之间交替:
- 在我的新 Excel 更新中使用 read.csv2 是原始的。
- 在我的版本中,小数点必须是“,”,Excel 才能识别为数字(R 也是。R 会在我的版本中读作“.”,但不能识别为数字)
在我的 summarise()
函数(使用 dplyr 和 tidyr 包)中,我错误地将“”放在我想从中获取平均值的列名称周围。前任。 summarise(mean=mean("temp"))
(正确的方法=> summarise(mean=mean(temp))
我没有正确询问:as.numeric(data[4])
函数。正如@MrFlick 指出的那样,数据框不是数字,而是询问:as.numeric(data[[4]])
挑出列的数据。 as.numeric(data[,4])
也有效。
最后,问题不是最新的 Excel 更新,而是我的新操作系统 (High Sierra) 与我的 Excel 版本 (2011) 不兼容。我必须更新到 2016 版本才能让文件恢复到最初的“。”格式化并从根本上解决 R 的阅读问题。
干杯!
自从 Excel 的上次更新后,R 将无法将我的文件识别为数字文件;甚至是我过去使用的那些。 我相信我的问题的根源是我的 Excel 是法语并且已经将默认小数点从“。”更改为到“,”(但这在过去 5 年中从未引起过问题)。
为了找出问题的根源,我尝试只使用一列数据(都带有 . 和 ,),但 R 总是给我这个错误:
"Error: (list) object cannot be coerced to type 'double'"
这是数据示例(保存为 data.csv 文件)
23.15
23.35
23.46
20.88
20.77
22.05
21.5
22.65
21.93
22.65
22.47
22.75
22.05
21.95
22.3
19.48
19.44
20.55
20.5
21.65
20.83
21.85
21.77
21.95
23.35
23.55
23.86
21.38
21.29
22.35
22.6
我都用过:
read.csv AND read.csv2 (read.csv2 is the way to go)
在 R 中导入后,如下所示:
但是当我问
is.numeric(data)
我明白了
> [1] FALSE
如果我试图胁迫:
as.numeric
我明白了
> Error: (list) object cannot be coerced to type 'double'
我真的很茫然;这似乎是一个糟糕但简单的兼容性问题。感谢您的帮助。
仅供参考,我已经解决了这个问题:
- 转换所有旧的“.”到 ","(否则 Excel 不会将它们视为数字,R. 也不会
- 将 Excel 中的默认语言从法语更改为英语。因为我有 mac,我只能更改 "editing" 而不是默认显示语言。
- 我笔记本电脑的默认语言是英语。
我解决了这个问题。原来我在多个问题之间交替:
- 在我的新 Excel 更新中使用 read.csv2 是原始的。
- 在我的版本中,小数点必须是“,”,Excel 才能识别为数字(R 也是。R 会在我的版本中读作“.”,但不能识别为数字)
在我的
summarise()
函数(使用 dplyr 和 tidyr 包)中,我错误地将“”放在我想从中获取平均值的列名称周围。前任。summarise(mean=mean("temp"))
(正确的方法=>summarise(mean=mean(temp))
我没有正确询问:
as.numeric(data[4])
函数。正如@MrFlick 指出的那样,数据框不是数字,而是询问:as.numeric(data[[4]])
挑出列的数据。as.numeric(data[,4])
也有效。最后,问题不是最新的 Excel 更新,而是我的新操作系统 (High Sierra) 与我的 Excel 版本 (2011) 不兼容。我必须更新到 2016 版本才能让文件恢复到最初的“。”格式化并从根本上解决 R 的阅读问题。
干杯!