楼主: enmeng1217
1943 15

[问答] lapply函数定义次序变量出错,请教高手 [推广有奖]

  • 1关注
  • 0粉丝

博士生

11%

还不是VIP/贵宾

-

威望
0
论坛币
809 个
通用积分
3.9106
学术水平
4 点
热心指数
7 点
信用等级
0 点
经验
2275 点
帖子
137
精华
0
在线时间
186 小时
注册时间
2005-12-24
最后登录
2024-4-18

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想把数据框a1的第2-15个变量定义为次序型变量,仿照例子用了如下命令:
a1[,2:15]<-lapply(a1[,2:15], ordered)
提示错误
Error in X[[g]][, idx2] : subscript out of bounds

然后后面的数据框的应用也没结果,请高手指教问题出在了哪里?

二维码

扫码加我 拉你入群

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

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

关键词:apply函数 lapply apply appl 请教高手

沙发
cheetahfly 在职认证  发表于 2018-1-19 00:19:13 |只看作者 |坛友微信交流群
sapply()

使用道具

藤椅
enmeng1217 发表于 2018-1-19 09:11:49 |只看作者 |坛友微信交流群
cheetahfly 发表于 2018-1-19 00:19
sapply()
试过了
a1[,2:15]<-sapply(a1[,2:15],ordered),后面没有提示错误,但是数据依然用不了。
试过了
a1[,2:15]<-sapply(a1[,2:15],ordered,simplify=FALSE, USE.NAMES=FALSE),提示和之前一样的错误.

使用道具

板凳
cheetahfly 在职认证  发表于 2018-1-19 09:22:49 |只看作者 |坛友微信交流群
你所说的问题,我在自己的电脑上没有遇到,可能是数据的特殊性造成的,你要把能够重复该问题的最小数据集拷贝上来。

使用道具

报纸
yywan0913 在职认证  发表于 2018-1-19 09:29:58 |只看作者 |坛友微信交流群
不是很明白你的目的,a1[,2:15]仍是矩阵,而非向量,你的排序肯定不可行

使用道具

地板
enmeng1217 发表于 2018-1-19 10:40:28 |只看作者 |坛友微信交流群
yywan0913 发表于 2018-1-19 09:29
不是很明白你的目的,a1[,2:15]仍是矩阵,而非向量,你的排序肯定不可行
我不是想排序,是想将数据框中的第2-15个变量定义为次序变量,看了别人的例子,但是换了自己的数据重复不来。

使用道具

7
enmeng1217 发表于 2018-1-19 10:46:58 |只看作者 |坛友微信交流群
cheetahfly 发表于 2018-1-19 09:22
你所说的问题,我在自己的电脑上没有遇到,可能是数据的特殊性造成的,你要把能够重复该问题的最小数据集拷 ...
附件里是数据,本来是csv格式,但是帖子里不支持CSV格式,我换成了Excel,请帮忙看看,谢谢了!

xx.xls

126.5 KB

使用道具

8
yywan0913 在职认证  发表于 2018-1-19 11:32:49 |只看作者 |坛友微信交流群
enmeng1217 发表于 2018-1-19 10:40
我不是想排序,是想将数据框中的第2-15个变量定义为次序变量,看了别人的例子,但是换了自己的数据重复不 ...
没明白 次序变量什么鬼
    assign  ?    attach ?

使用道具

9
enmeng1217 发表于 2018-1-19 12:08:39 |只看作者 |坛友微信交流群
yywan0913 发表于 2018-1-19 11:32
没明白 次序变量什么鬼
    assign  ?    attach ?
就是数据是次序类的,不是数量型的,可比较大小,不可加减乘除等运算,社会调查中这类数据很多,比如满意程度的赋值。

使用道具

10
yywan0913 在职认证  发表于 2018-1-19 13:58:32 |只看作者 |坛友微信交流群
enmeng1217 发表于 2018-1-19 12:08
就是数据是次序类的,不是数量型的,可比较大小,不可加减乘除等运算,社会调查中这类数据很多,比如满意 ...
  1. > t=read.table('xx.xls',header=T,sep="\t")
  2. > a=head(t,n=10)
  3. > a
  4.      x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15
  5. 1  12.9  1  0  2  1  4  4  3  2   2   1   2   2   1   3
  6. 2  12.7  1  0  1  1  5  7  6  1   2   1   3   2   1   4
  7. 3  12.7  1  0  1  2  8  8  8  2   2   2   2   2   0   4
  8. 4  12.7  2  1  2  4  1  1  1  2   2   2   2   2   0   4
  9. 5  13.1  1  0  1  1  2  6  8  1   1   1   1   2   1   1
  10. 6  12.7  1  1 NA  1  2  8  8  3   2   1   1   2   1   4
  11. 7  12.7  1  1  2  2  4  6  7  1   3   1   3   3   0   4
  12. 8  12.9  1  0  1  2  8  8  8  2   2   2   2   2   0   3
  13. 9  12.7  3  1  3  2  4  5  5  1   3   2   3   1   1   4
  14. 10 12.9  2  0  3  1  9  8  8  1   1   4   2   3   0   3
  15. > a[,2:15]=lapply(2:15,function(x)ordered(a[,x]))
  16. > a[,2]
  17. [1] 1 1 1 2 1 1 1 1 3 2
  18. Levels: 1 < 2 < 3
复制代码

使用道具

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

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

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

GMT+8, 2024-5-5 03:19