楼主: dbcoffee
28376 12

[问答] 求教,如何更改dataframe中的数据类型? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

51%

还不是VIP/贵宾

-

威望
0
论坛币
181 个
通用积分
170.9881
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1159 点
帖子
62
精华
0
在线时间
211 小时
注册时间
2015-6-16
最后登录
2022-7-10

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
$ 死亡:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':
  ..$ ID          : chr [1:3]
  ..$ age         : chr [1:3] "53" "70" "61"
  ..$ Dose        : chr [1:3] "50" "150" "75"

如上面已经读取的数据类型,age,dose都是chr类型的,如何将其改为num(改完后保存到原来的dataframe中)?试过as.numeric(),报错,Error: (list) object cannot be coerced to type 'double'

二维码

扫码加我 拉你入群

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

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

关键词:数据类型

沙发
cheetahfly 在职认证  发表于 2018-8-7 00:42:11 |只看作者 |坛友微信交流群
将你的数据放上来吧,光听你描述不清楚是什么问题。

使用道具

藤椅
MapleBuddy 发表于 2018-8-7 01:38:55 |只看作者 |坛友微信交流群
可以导入数据的时候用R右上角的import dataset,提供的界面可以设置每一列的数据格式;或者把想转化的一列先unlist(),再用as.numeric()。
不知道能否解决你的问题,新手上路,请多指教。

使用道具

板凳
幸运符 发表于 2018-8-7 02:13:08 |只看作者 |坛友微信交流群

使用道具

报纸
dbcoffee 发表于 2018-8-7 23:12:07 |只看作者 |坛友微信交流群
MapleBuddy 发表于 2018-8-7 01:38
可以导入数据的时候用R右上角的import dataset,提供的界面可以设置每一列的数据格式;或者把想转化的一列先 ...
谢谢,学会了从开始导入的时候就限定类型 test.xlsx (10.9 KB) 还有个问题,就是在开始时将数据类型选择为character,后续在处理数据的时候想通过函数将已经保存在dataframe中的数据类型进行转换?unlist(),as.numeric()是可以转换,但是并没有把转换后的数据保存在dataframe中,下次再调用dataframe时,数据类型依然是character,如图:
1.JPG
3.JPG


2.JPG (67.76 KB)

2.JPG

使用道具

地板
dbcoffee 发表于 2018-8-7 23:17:54 |只看作者 |坛友微信交流群
cheetahfly 发表于 2018-8-7 00:42
将你的数据放上来吧,光听你描述不清楚是什么问题。
就是在开始时将数据类型选择为character,后续在处理数据的时候想通过函数将已经保存在dataframe中的数据类型进行转换?并把转换后的数据类型保存在dataframe中,下次再调用dataframe时,数据类型为数值型,如图:

(注:抱歉,这个回帖附件不知道怎么回事,传不上去,楼上回复中有数据的附件,谢谢!)

1.JPG
3.JPG

使用道具

7
cheetahfly 在职认证  发表于 2018-8-8 08:31:18 |只看作者 |坛友微信交流群
因为你第一楼的时候举例是只有三行:
$ 死亡:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':
  ..$ ID          : chr [1:3]
  ..$ age         : chr [1:3] "53" "70" "61"
  ..$ Dose        : chr [1:3] "50" "150" "75"

所以我还不是很确定,但是你这样举例,我就有把握了,应该是在你看不见的地方,该几列数值有无法被转化的内容,比如字母,符号等,现实中,这样的“脏”数据是很常见的,你要找到这些内容,并做好清理工作,再转化。
转化完成后用赋值符号“<-” 赋值给一个变量,就能保存了。

使用道具

8
MapleBuddy 发表于 2018-8-8 11:32:10 |只看作者 |坛友微信交流群
dbcoffee 发表于 2018-8-7 23:12
谢谢,学会了从开始导入的时候就限定类型还有个问题,就是在开始时将数据类型选择为characte ...
mytest$age <- as.numeric(mytest$age) 这样?改成numeric后重新赋给原变量是否可行?

使用道具

9
dbcoffee 发表于 2018-8-8 21:04:22 |只看作者 |坛友微信交流群
cheetahfly 发表于 2018-8-8 08:31
因为你第一楼的时候举例是只有三行:
$ 死亡:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':
  ..$ ID   ...
的确,在我的数据中(一堆数字中)存在字符串(有其他用处),所以在读取的时候默认读取为chr类型了,但是数字中的字符串我又想暂时保留,所以。。。。

使用道具

10
dbcoffee 发表于 2018-8-8 21:06:37 |只看作者 |坛友微信交流群
MapleBuddy 发表于 2018-8-8 11:32
mytest$age
问题解决了,我用了下面的语句,执行完毕后再str(data),该列的数据类型已经变成num了(元数据中的字符串默认变成NA),这是我想要的结果,谢谢!
data[4]=as.numeric(unlist(data[4]))

> str(data)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':        21 obs. of  9 variables:
$ age         : num  NA 57 17 46 42 47 18 20 52 72 ...

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 09:14