首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在带有XLConnect和R的混合类型列中导入所有小数位?

如何在带有XLConnect和R的混合类型列中导入所有小数位?
EN

Stack Overflow用户
提问于 2014-08-13 16:38:18
回答 1查看 515关注 0票数 0

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

如何导入列,指定要将字符字段和打印的小数都输入到它们的全部输入值(作为字符向量)?

由于电子表格的要求,对缺少MWE表示歉意。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 19:42:06

根据我对您对工作表的描述的解释,我创建了一个小型测试工作表,其外观如下

代码语言:javascript
运行
复制
  Name Value
    a   abc
    b  12.3
    c   1.2
    d   0.1

值列中的数字比所显示的有更多的重要数字。你似乎有两个问题,第一,你问如何阅读这个问题,第二,如何将结果存储在R中。R数据帧中的列必须是所有相同的数据类型,一个列表看起来有点混乱。这样做的一种方法是两次读取工作表,第一次是将所有数据作为字符,第二次是使用readWorksheet函数中的readWorksheet选项强制将列读取为数字,并将结果存储在一个新的col中。代码看起来就像

代码语言:javascript
运行
复制
 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成为

代码语言:javascript
运行
复制
 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_Num列中的数据为数字。从这里开始,您必须整理出如何处理这两个值列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25291626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档