R语言 从excel导入数据,由于内容有excel的换行符导致列数不一致的问题

问题描述

数据在excel中,一般导入方法是通过read.table(“clipboard”, sep = ‘\t’)的方法读取数据。
但是有时候excel中会有某一单元格通过(alt + 回车)数据换行的情况,导致读取错位,提示某一行的列数不一致:
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
line 269 did not have 26 elements
在这里插入图片描述
如果把数据放到emeditor中去查看,会发现数据中确实会有很多换行
在这里插入图片描述

解决办法

1. 在excel中先通过trim和clean函数进行预处理

新建一个sheet,输入公式
=CLEAN(TRIM(表名!A1))
然后横向手动拖拉填充 + 纵向填充(快捷键crtl+D),具体操作手法可以百度一下,目的是把源表的每一个数据通过clean清除换行空格等特殊字符

2. 读入数据

注:这里是用readr包的函数读入,用内置的read.table或者read.csv依然会报错

简单的方法是,将清理后的数据复制粘贴到文本编辑器,保存为txt,通过readr包的read_table2读入
library(readr)
t2 = read_table2("C:/Users/admin/Desktop/tmp.txt")
如果想保存为csv,需通过emeditor转为csv后,通过read_csv读入
  1. 复制进emeditor后先用制表符分隔
    在这里插入图片描述
  2. 再转为用逗号分隔的csv文件
    点击这个魔法棒的图标后,右侧会出现csv转换器
    在这里插入图片描述
    选择逗号分隔后,点击立即转换,完成后这个文件就已经是转为了标准格式的csv文件了,另存为csv。
    在这里插入图片描述

可选择文件编码在这里插入图片描述
3. 用readr包的read_csv读取文件

library(readr)
t2 = read_csv("C:/Users/admin/Desktop/tmp.csv")
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值