Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 韩元';不能将数据识别为数字_R_Excel_Decimal_Compatibility - Fatal编程技术网

R 韩元';不能将数据识别为数字

R 韩元';不能将数据识别为数字,r,excel,decimal,compatibility,R,Excel,Decimal,Compatibility,自从Excel上次更新以来,R不会将我的文件识别为数字文件;甚至是我过去用过的那些。 我相信我的问题的根源在于我的Excel是法语的,并且已经将默认小数点从“.”改为“,”(但这在过去5年中从未造成任何问题) 为了找出问题的根源,我尝试只使用一列数据(都带有.and,),但R总是给我这个错误: “错误:(列表)对象不能强制为'double'类型” 以下是数据示例(另存为data.csv文件) 我使用了两种方法: read.csv AND read.csv2 (read.csv2 is the

自从Excel上次更新以来,R不会将我的文件识别为数字文件;甚至是我过去用过的那些。 我相信我的问题的根源在于我的Excel是法语的,并且已经将默认小数点从“.”改为“,”(但这在过去5年中从未造成任何问题)


为了找出问题的根源,我尝试只使用一列数据(都带有.and,),但R总是给我这个错误:

“错误:(列表)对象不能强制为'double'类型”

以下是数据示例(另存为data.csv文件)

我使用了两种方法:

read.csv AND read.csv2 (read.csv2 is the way to go)
在R中导入后,它看起来是这样的:

但是当我问

is.numeric(data)
我明白了

> [1] FALSE
> Error: (list) object cannot be coerced to type 'double'
如果我试图强迫:

as.numeric
我明白了

> [1] FALSE
> Error: (list) object cannot be coerced to type 'double'
我在这里真是不知所措;这似乎是一个很糟糕但很简单的兼容性问题。谢谢你的帮助


仅供参考,我已经完成了以下故障排除:

  • 将所有旧的“.”转换为“,”(否则Excel不会将它们视为数字,R也不会
  • 将Excel的默认语言从法语更改为英语。由于我有mac电脑,我只能更改“编辑”而不能更改默认显示语言
  • 我的笔记本电脑的默认语言为英语

我解决了这个问题。结果我在多个问题之间交替出现:

  • 将read.csv2与我的新Excel更新一起使用是最基本的
  • 在我的版本中,小数点必须是“,”才能让Excel识别为数字(在我的版本中,R也将是“,”但不能识别为数字)
  • 在我的
    summary()
    函数(使用dplyr和tidyr包)中,我错误地将“”放在了我想从.Ex.
    summary(mean=mean(“temp”))中获得平均值的列名周围。
    (正确的方式=>
    summary(mean=mean(temp))

  • 我没有正确地询问:
    as.numeric(data[4])
    function。正如@MrFlick指出的,数据框不是数字的,而是询问:
    as.numeric(data[[4]])
    挑出列的数据。
    as.numeric(data[,4])
    也可以

  • 最后,问题不在于最新的Excel更新,而是我的新操作系统(High Sierra)与我的Excel版本(2011)不兼容。我必须更新到2016版本,使文件恢复到最初的“.”格式,并基本上解决了R的阅读问题


  • 干杯!

    什么是
    class(data)
    ?R将以data.frame而不是数字向量的形式读取数据。如果您只需要一个向量,请使用
    scan()
    。否则
    class(data[[1]])
    可能已经是数字了(您只需要从data.frame中提取列)。这似乎与Excel没有任何关系。类(数据)生成:[1]“data.frame”。扫描(数据)生成错误:“扫描(数据)中的错误:'文件'必须是字符串或连接”。我如何从数据框中提取列?谢谢!注意。是的,您是对的,类(类[[1]])-->[1]“数值的“。但我似乎还是看不懂。您可以使用
    scan()
    而不是
    read.csv
    。但是您的数据位于data.frame文件中。这是目前大多数导入工作的方式。data.frame本身不是数字的,但它的列可以是数字的。您应该指定如何读取它以及此问题在代码中的表现形式。您可以使用
    read.table
    并指定所有参数冷冰冰的。