我正在尝试使用XLConnect将许多Excel电子表格导入到R中。两列感兴趣,一列包含变量名,另一列包含值。这些值在字符或数字之间变化。电子表格的作者已设置数值以显示不同的小数位数,具体取决于单元格,但我需要所有带小数点的数字值。但是,由于该列包含字符和数字,readWorksheet
会将所有内容转换为字符,因此似乎只读取单元格内Excel中显示的可见小数位。
如何导入一个列,指定我希望字符字段和打印小数都是完整的输入值(作为字符向量)?
由于需要电子表格,因缺乏MWE而道歉。
答案 0 :(得分: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 as
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列中的数据是数字。从那里你必须弄清楚如何处理两个Value列。