【发布时间】:2019-01-30 22:17:43
【问题描述】:
我正在尝试从我拥有的一个 Excel 文件中提取数据。然而,R 将一些数据以 DateTime 格式而不是数字格式放置,即使 Excel 中的数据是数字(数据是自定义格式,并且在应用通用格式时似乎是数字)。我试图通过“as.numeric()”函数来改变它,但它没有用。上述任务使用的代码如下:
library(readxl)
l<-as.data.frame(read_excel(choose.files(),sheet=2,range="C6:BG123"))
vec1<-c("t",rep("n",ncol(l)-1))
#Changing columns to the appropriate format
for(j in 1:length(vec1)){
if(vec1[j]=="t"){
l[,j]<-as.character(l[,j])
}else if(vec1[j]=="n"){
l[,j]<-as.numeric(l[,j])
}
此代码之后的最终输出是具有巨大数值的数据,而不是 Excel 中显示的实际数字。
excel数据可以在这里找到:https://www.england.nhs.uk/statistics/wp-content/uploads/sites/2/2019/01/20190110-NHS-111-MDS-time-series-to-December2018-1.xlsx
我想知道我错在哪里,如果它与 excel 中数据的初始格式有关,我如何在导入数据之前将 Excel 中的格式从 R 更改为“常规”。
【问题讨论】:
-
你应该举一个你的输入/输出数据的例子
-
@Alexandregeorges 按要求提供数据源
-
通过正确设置
col_types-argument 来强制read_excel读取正确的格式....此外,read_excel 已经产生了一个小标题,所以你可能不需要as.data.frame()它 -
工作表中没有数据 2。一些解决方案: - 使用 RStudio 中的“导入数据集”按钮(您可以在 UI 中修改格式) - 使用
col_types参数作为Wimpel 建议 - 在输入数据中只保留您需要的行和列 -
@Wimpel 解决了这个问题。如果您将您的建议作为答案发布,我会接受。无论如何,非常感谢!