楼主: wushanshier
1791 6

[问答] 请问关于xlsx数据包 [推广有奖]

  • 0关注
  • 0粉丝

大专生

1%

还不是VIP/贵宾

-

威望
0
论坛币
59 个
通用积分
6.4587
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
12704 点
帖子
21
精华
0
在线时间
56 小时
注册时间
2008-3-23
最后登录
2025-1-5

楼主
wushanshier 发表于 2018-10-6 13:08:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在xlsx这个package包中,read.xlsx和read.xlsx2到底有什么差别啊,有个文件用前者没什么问题,用后者就把数字型变量都读成非计量型的了,到底是为什么啊,谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:xlsx xls 数据包 package READ

沙发
jinkelazzz 发表于 2018-10-8 17:08:42
The read.xlsx2 function does more work in Java so it achieves better performance (an order of magnitude faster on sheets with 100,000 cells or more). The result of read.xlsx2 will in general be different from read.xlsx, because internally read.xlsx2 uses readColumns which is tailored for tabular data.
读大量数据用2 在java里处理的多 所以快点
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

藤椅
wushanshier 发表于 2018-10-8 20:08:40
jinkelazzz 发表于 2018-10-8 17:08
The read.xlsx2 function does more work in Java so it achieves better performance (an order of magnit ...
谢谢了,其实主要原因是xlsx2将人数、数值都读成了字符串,不知有没有办法解决

板凳
caimiao0714 学生认证  发表于 2018-10-9 03:27:07
wushanshier 发表于 2018-10-8 20:08
谢谢了,其实主要原因是xlsx2将人数、数值都读成了字符串,不知有没有办法解决
你可以看看你的excel文档里面人数和数值两列里面是否存在字符串,如果没有的话,可以用以下两行代码讲你想要的数据转换成数值格式的。只不过要注意以下强制转换会把字母(如"a")转换成NA格式。
  1. data[['人数']] = as.numeric(data[['人数']])
  2. data[['数值']] = as.numeric(data[['数值']] )
复制代码

已有 1 人评分论坛币 热心指数 收起 理由
admin_kefu + 20 + 2 热心帮助其他会员

总评分: 论坛币 + 20  热心指数 + 2   查看全部评分

报纸
caimiao0714 学生认证  发表于 2018-10-9 03:28:28
wushanshier 发表于 2018-10-8 20:08
谢谢了,其实主要原因是xlsx2将人数、数值都读成了字符串,不知有没有办法解决
你可以看看你的excel文档里面人数和数值两列里面是否存在字符串,如果没有的话,可以用以下两行代码讲你想要的数据转换成数值格式的。只不过要注意以下强制转换会把字母(如"a")转换成NA格式。
data$人数 = as.numeric(data$人数)
data$数值 = as.numeric(data$数值)

地板
wushanshier 发表于 2018-10-11 20:21:14
caimiao0714 发表于 2018-10-9 03:28
你可以看看你的excel文档里面人数和数值两列里面是否存在字符串,如果没有的话,可以用以下两行代码讲你想 ...
我再看看,谢谢了

7
wushanshier 发表于 2018-10-12 19:52:19
问题解决了,读完数据转换会将数据转换成1,2,3,4,5,6,7,8,所以不能用,只有在读xlsx文件时加上条件才行。

  1. gg<-read.xlsx2("2018.xlsx" ,2 ,colClasses = c(rep("numeric",10)))
复制代码

甚至
  1. gg<-read.xlsx2("2018.xlsx" ,2 ,colClasses = NA)
复制代码

都行,谢谢各位参与回复。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:26