楼主: xiaoxue@
1019 16

[问答] 矩阵删除列的问题,摆脱帮帮忙,挣扎一整天了。 [推广有奖]

11
zerofung 学生认证  发表于 2021-3-12 20:55:07 |只看作者 |坛友微信交流群
xiaoxue@ 发表于 2021-3-12 19:41
不知道为什么,我用这样的方法做的结果就是将B去掉了1列,变成200*199的矩阵。
你再看看colnames(B) %in% colnames(A)有多少个FALSE,如果是190个false,那么上面代码绝对是对的,如果199个false,你应该再仔细看看你有没有描述准确,还是有没有看错,是否A的列名都在B里

使用道具

12
zerofung 学生认证  发表于 2021-3-12 21:00:05 |只看作者 |坛友微信交流群
xiaoxue@ 发表于 2021-3-12 19:58
a
你这个代码就错了,你循环里根本没有i,不知道你这个循环想实现什么
另外两个长度不同的向量你用==去判断是否相同,会出现很多问题
建议找个好教程,好好打基础,磨刀不误砍柴工。

使用道具

13
llb_321 在职认证  发表于 2021-3-12 21:10:25 |只看作者 |坛友微信交流群
如果只是按列名而不管列向量是否相同,可以这样
C<-A[, setdiff(colnames(A), colnames(B))]
之前的代码是按列向量也相同的处理

使用道具

14
xiaoxue@ 发表于 2021-3-13 08:40:45 |只看作者 |坛友微信交流群
zerofung 发表于 2021-3-12 21:00
你这个代码就错了,你循环里根本没有i,不知道你这个循环想实现什么
另外两个长度不同的向量你用==去判断 ...
好的,谢谢您。

使用道具

15
xiaoxue@ 发表于 2021-3-13 09:07:30 |只看作者 |坛友微信交流群
llb_321 发表于 2021-3-12 21:10
如果只是按列名而不管列向量是否相同,可以这样
C
您好,我可以再请教一下吗,矩阵B中要剔除的与A列名称的那些列向量都如图片所示,和其他列向量明显不同,但我用C<-A[, setdiff(colnames(A), colnames(B))]去做,为什么只剔除了列名称为V183的那一列? }Z(LL_X{Z}Z`5UX@DII)[TE.png

使用道具

16
xiaoxue@ 发表于 2021-3-13 09:08:03 |只看作者 |坛友微信交流群
}Z(LL_X{Z}Z`5UX@DII)[TE.png

使用道具

17
xiaoxue@ 发表于 2021-3-13 09:44:41 |只看作者 |坛友微信交流群
llb_321 发表于 2021-3-12 21:10
如果只是按列名而不管列向量是否相同,可以这样
C
合适了,非常谢谢您。

使用道具

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

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

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

GMT+8, 2024-5-4 09:09