You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

矩阵取子集返回向量而非矩阵,如何修改代码保留矩阵格式?

解决矩阵取子集后变成向量的问题

你的原代码问题在于id[,]会把矩阵直接展平成一维向量,之后用%in%筛选出的是单个匹配元素,最终结果自然是向量而非保留整行的矩阵。根据你“保留包含1、3、5值的行”的需求,分两种场景给出修正代码:

场景1:保留至少有一个元素是1/3/5的行

用apply逐行检查是否存在匹配值,同时加上drop = FALSE强制保留矩阵格式(避免结果仅一行时自动转向量):

id13 <- id[apply(id, 1, function(row) any(row %in% c(1, 3, 5))), , drop = FALSE]

场景2:保留所有元素都是1/3/5的行

如果需求是行内所有元素都属于1/3/5,把any换成all即可:

id13 <- id[apply(id, 1, function(row) all(row %in% c(1, 3, 5))), , drop = FALSE]

内容的提问来源于stack exchange,提问作者Nader Mehri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:50:58