楼主: xiaoxue@
1402 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
拉您进交流群
GMT+8, 2026-1-16 09:33