r - 有条件地删除向量元素
问题描述
我有两个向量 a,b,其中 b 可以比 a 长 1 个单位。在这种情况下,我需要删除向量 b 的最后一个元素以使它们相等。我试过以下:
a <- c(1:3)
b <- c(1:4)
b <- ifelse(length(a) != length(b), b[-length(b)], b)
b <- ifelse(length(a) != length(b), b[-NROW(b)], b)
在这两种情况下,我得到
> b
[1] 1
但是当我从 ifelse() 中执行此操作时,我可以得到我所期望的:
c <- c(1:4)
c <- c[-length(c)]
> c
[1] 1 2 3
我知道如何使用“if”来编写它,但我正在寻找更好的选择。
解决方案
我将使用第一个向量的长度作为上限来对向量进行子集化:
a <- c(1:3)
b <- c(1:4)
b[1:length(a)]
[1] 1 2 3
推荐阅读
- javascript - 尝试通过 id 获取用户时出错 ------> (localhost:3080/api/users/?id=1) 无法获取 /api/user/id=1 错误
- php - 一秒钟后我的 Ajax 输出消失了
- python - Pyrebase 在 json 中发送配置文件图片
- amazon-web-services - 创建 IAM 策略示例_策略时出错:MalformedPolicyDocument:策略文档不应指定委托人
- arrays - 如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?
- discord.js - 从不和谐机器人消息中的 axios.get 请求发送数据
- python-3.x - 熊猫数据框总和结果错误
- amazon-web-services - `kops update cluster` 返回多个将创建/修改资源
- android - 使用 Jetpack Compose 左对齐自定义选项卡
- python - pythonanywhere 中的相对导入在烧瓶项目中不起作用