楼主: jalonso
4890 3

[问答] 关于离散变量类型转换(相关读取数据时chr被自动转为numeric的解决方法) [推广有奖]

  • 4关注
  • 0粉丝

本科生

64%

还不是VIP/贵宾

-

威望
0
论坛币
135 个
通用积分
34.3124
学术水平
0 点
热心指数
13 点
信用等级
5 点
经验
6217 点
帖子
57
精华
0
在线时间
138 小时
注册时间
2015-10-19
最后登录
2022-10-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题:原始数据中包含离散变量,但离散变量的形式是纯数字,比如班级:1,2,3,4 四类,存放在excel中的列为文本格式,但在read.csv读入时,会直接自动的转换成numeric类型而不是character。请问这个问题怎么解决?

如果不明白问题可以看我生成的这个小例子#先造了一个数据
> x<-c(1,2,3,4)
> y<-c(0,0,1,1)
> p<-data.frame(x,y,stringsAsFactors = F)
> p
  x y
1 1 0
2 2 0
3 3 1
4 4 1
#强制转换成character并写入csv
> p$x<-as.character(p$x)
> p$y<-as.character(p$y)
> str(p)
'data.frame':        4 obs. of  2 variables:
$ x: chr  "1" "2" "3" "4"
$ y: chr  "0" "0" "1" "1"
> write.csv(p,file = 'test_p.csv',row.names = FALSE)
#读入的时候发现变成了numeric。。。ORZ
> p2<-read.csv('test_p.csv',header=T,sep=',')
> str(p2)
'data.frame':        4 obs. of  2 variables:
$ x: int  1 2 3 4
$ y: int  0 0 1 1



二维码

扫码加我 拉你入群

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

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

关键词:离散变量 文本格式 原始数据 存放在 纯数字

沙发
cheetahfly 在职认证  发表于 2018-10-18 09:49:48 |只看作者 |坛友微信交流群
读取之后在强制转为character

使用道具

藤椅
jalonso 发表于 2018-10-18 10:43:05 |只看作者 |坛友微信交流群
cheetahfly 发表于 2018-10-18 09:49
读取之后在强制转为character
怎么来强转,想我后面的例子里那样么as.character()?还是读文件的函数就可以附带强转(大神最好给个代代码事例)。
另外也就是说每次读文件都要强转么?

使用道具

板凳
铁锷未残 学生认证  发表于 2018-10-18 11:47:52 |只看作者 |坛友微信交流群
使用readr::read_csv读取数据,在参数col_types中进行设置。
已有 1 人评分热心指数 收起 理由
ryoeng + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-24 17:13