0

我正在尝试使用 XLConnect 将许多 Excel 电子表格导入 R。我对两列感兴趣,一列包含变量名,另一列包含值。这些值在字符或数字之间有所不同。电子表格的作者已将数值设置为根据单元格显示不同的小数位数,尽管我需要所有带有小数位的数值。但是,由于该列同时包含字符和数字,readWorksheet将所有内容都转换为字符,因此似乎只能读取 Excel 中单元格内显示的可见小数位。

如何导入指定我希望字符字段和打印的小数为其完整输入值(作为字符向量)的列?

抱歉,由于需要电子表格,因此缺少 MWE。

4

1 回答 1

0

根据我对您对工作表的描述的解释,我创建了一个小型测试工作表,看起来像

  Name Value
    a   abc
    b  12.3
    c   1.2
    d   0.1

其中“值”列中的数字具有比所示更多的有效数字。您似乎有两个问题,第一个是您询问如何阅读这个问题,第二个是如何将结果存储在 R 中。R 数据帧中的列必须都是相同的数据类型,并且列表似乎是有点乱。一种方法是读取工作表两次,第一次将 Value col 中的所有数据作为字符获取,第二次使用 readWorksheet 函数中的 forceConversion 选项强制将列读取为数字并将结果存储在新的上校 代码看起来像

 library(XLConnect)
wb <- loadWorkbook("test.xlsx")
df <- readWorksheet(wb, "test" )
df <- cbind(df, Value_Num=readWorksheet(wb, "test", drop="Name", colTypes="numeric", forceConversion=TRUE)$Value)

这应该给 df 作为

 Name Value Value_Num
1    a   abc        NA
2    b  12.3    12.300
3    c   1.2     1.230
4    d   0.1     0.123

其中 Value 列中的数据是字符,Value_Num 列中的数据是数字。从那里你必须理清如何处理两个值列。

于 2014-08-13T19:42:06.937 回答