楼主: 126victory
169 10

[问答] 将excel的文字替换为数字怎么做? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

7%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
110 点
帖子
16
精华
0
在线时间
15 小时
注册时间
2019-7-29
最后登录
2019-8-21

126victory 发表于 2019-8-9 15:16:44 |显示全部楼层
如何将此excel中的文字用r语言替换为数字,令偶尔=1,有时=2,经常=3,持续=4,跪求,谢谢了! 图片1.png


关键词:EXCEL xcel exce cel 怎么做

stata SPSS
liujiajin 发表于 2019-8-9 15:46:30 来自手机 |显示全部楼层
本帖最后由 liujiajin 于 2019-8-9 17:34 编辑

126victory 发表于 2019-8-9 15:16
如何将此excel中的文字用r语言替换为数字,令偶尔=1,有时=2,经常=3,持续=4,跪求,谢谢了! ...
为什么不在Excel里改?那样岂不是很方便?改完另存为csv再导入
如果你一定要的话,方法有很多,我提供一个思路
例如数据集为A,字段名为jl
A $ jl[A $ jl=“偶尔”]<-  1
etc
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

回复

使用道具 举报

觅寄忧谷 发表于 2019-8-9 16:17:12 |显示全部楼层
其实就是因子转化,一般用R软件的时候熟练了矩阵、数据框和向量,但是忽视了每本书一开始讲的数据类型中的因子,其实你的是指就是因子,我自己写了两行代码就可以理解了:
x<-c("偶尔","持续","有时","偶尔","偶尔","有时","偶尔","有时","持续","偶尔","经常","偶尔","持续","偶尔","偶尔")
x1<-factor(x,labels = c(1,2,3,4),levels = c("偶尔","有时","经常","持续"))
输的x1的结果为
1 4 2 1 1 2 1 2 4 1 3 1 4 1 1
Levels: 1 2 3 4
数据结构如下:
str(x1)
Factor w/ 4 levels "1","2","3","4": 1 4 2 1 1 2 1 2 4 1 ...
只是转化为文本是不对的,数据类型应该是上述的四个levels的因子,而且,如果有顺序,还应该添加order=T的参数
例如,
x1<-factor(x,labels = c(1,2,3,4),levels = c("偶尔","有时","经常","持续"),ordered = T)
x1
1 4 2 1 1 2 1 2 4 1 3 1 4 1 1
Levels: 1 < 2 < 3 < 4
观察数据结构
str(x1)
Ord.factor w/ 4 levels "1"<"2"<"3"<"4": 1 4 2 1 1 2 1 2 4 1 ...
可见生成了1"<"2"<"3"<"4"的四个有序因子,转化成有序很重要的是我们可以认为持续、经常登有优劣顺序,转化为文本是不能比较持续的
详细的可以看看R语言书记,基本上前两章将数据类型一定会有讲因子的,这比你问题中描述的转化为文本更符合统计的要求。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

回复

使用道具 举报

觅寄忧谷 发表于 2019-8-9 16:28:11 |显示全部楼层
补充一点,为啥要转化为因子,因子和文本看上去一样,但是计算机不认啊,有序因子是有逻辑关系的,但是文本没法比较,例如:
> x2<-factor(x,levels = c("偶尔","有时","经常","持续"),ordered = T)
> x2>"有时"
[1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE
可见,转化为有序因子的能够比较,但是如果是文本:
> x>"有时"
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
全是F,因为文本没有顺序的关系,人看起来一样,但是计算机眼里是不一样的
回复

使用道具 举报

126victory 发表于 2019-8-9 16:49:06 |显示全部楼层
liujiajin 发表于 2019-8-9 15:46
为什么不在Excel里改?那样岂不是很方便?改完另存为csv再导入
如果你一定要的话,方法有很多,我提供一个 ...
哈哈,我在拿这个简单的excel练习r,想学学用r怎么换成数字
回复

使用道具 举报

126victory 发表于 2019-8-9 16:52:07 |显示全部楼层
觅寄忧谷 发表于 2019-8-9 16:28
补充一点,为啥要转化为因子,因子和文本看上去一样,但是计算机不认啊,有序因子是有逻辑关系的,但是文本 ...
我还是不知道这个数据怎么替换为数字,因为有好多列,一列一列改有点麻烦
回复

使用道具 举报

liujiajin 发表于 2019-8-9 17:34:28 |显示全部楼层
126victory 发表于 2019-8-9 16:49
哈哈,我在拿这个简单的excel练习r,想学学用r怎么换成数字
那你这个数据是怎么导入进去的?是通过打开excel吗?还是通过命令导入?
回复

使用道具 举报

liujiajin 发表于 2019-8-9 17:35:30 |显示全部楼层

例如数据集为A,字段名为jl

A $ jl[A $ jl=“偶尔”]<- 1

回复

使用道具 举报

126victory 发表于 2019-8-9 17:47:10 |显示全部楼层
liujiajin 发表于 2019-8-9 17:35
例如数据集为A,字段名为jl
A $ jl[A $ jl=“偶尔”]&lt;- 1
好的,谢谢您
回复

使用道具 举报

liujiajin 发表于 2019-8-9 17:48:58 |显示全部楼层
126victory 发表于 2019-8-9 17:47
好的,谢谢您
我整个人都不好了,在A和jl之间有个“$”符号,怎么都打不出来
回复

使用道具 举报

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

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

GMT+8, 2019-8-25 09:09