r - 更改数据框中的数据类型
问题描述
我在 R 中使用的 Excel 电子表格中有一些数据表。一些表将数字存储为文本,即数值存储为字符。
澄清一下,问题不是格式,而是数字本身。Excel(和 R)将此类数字视为字母等字符,而不是数字。
因为格式化似乎是一个问题,所以addStyle
函数 inopenxlsx
对我不起作用。
经过一番谷歌搜索后,我决定尝试编写一个for
循环来单独检查每个值。我编写了一个嵌套for
循环来检查每个值并在它是数字时覆盖它(代码如下)。这似乎合乎逻辑但值不会被覆盖,即作为文本存储的值仍然存在。
library(readxl)
library(openxlsx)
wb<-loadWorkbook(choose.files())
data0<-as.data.frame(read_excel(choose.files(),sheet=1,range = "B1:E1131"))
data<-data0
for(i in 1:ncol(data)){
for(j in 1:nrow(data)){
if(is.numeric(as.numeric(data[j,i]))&&!is.na(as.numeric(data[j,i]))){
data[j,i]<-as.numeric(data[j,i])
}
}
}
期望的结果:
我想通过 R 将“费用”列(如下图)中的数据更改为右侧列中的数据。
解决方案
来自我的评论:
您可以使用col_types
-function 中的 -argumentreadxl::read_excel()
来强制读取 text/numeric/date/... 数据
推荐阅读
- c++ - 割线方法实施中可能出现的错误?
- javascript - 如何使函数返回 .onload 内部的内容
- angular - 如何找到 2 个日期之间的差异?(AngularCLI,NgbDateStruct)
- amazon-web-services - 在亚马逊应用程序负载均衡器中附加多个服务
- java - 是否有一个 Spring 函数可以删除 CSV 文件中的引号字符或分隔符?
- javascript - 重新分配不会改变 java 脚本中 const 的值吗?
- oracle - OracleXE 在 Windows 上安装 SCOTT 模式
- python - python中的repr方法是否应该总是返回字符串
- ionic3 - 为 Ionic V3 应用安装 Campaign Tracking
- google-cloud-platform - 启用 GCP cloudresourcemanager gcloud config joe.bloggs@googlemail.com 帐户与 GCP 项目所有者角色 joe.bloggs@gmail.com 不匹配