r - 从 data.frame 中的特定列返回值
问题描述
我有data.frame
14 列,由 13 个时间段的测试分数组成,全部为数字。最后一列,比如 X,表示每个学生(行)成绩不及格的具体时间点。我想创建一个单独的列,其中包含每个学生在特定不及格时间点的不及格考试成绩。
dataframe<-data.frame(TestA=c(58,92,65,44,88),
TestB=c(17,22,58,46,98),
TestC=c(88,98,2,45,80), TestD=c(33,25,65,66,5),
TestE=c(98,100,100,100,100), X=c(2,2,3,NA,4))
以上是带有模拟数据的压缩版本。第一个学生在第二个时间点不及格,以此类推,但第四个学生从未失败。结果列应该是 17,2 2, 2, NA, 5。我怎样才能做到这一点?
解决方案
你可以试试
dataframe[cbind(1:nrow(dataframe), dataframe$X)]
#[1] 17 22 2 NA 5
从?`[`
第三种索引形式是通过一个数字矩阵,每个维度有一列:索引矩阵的每一行然后选择数组的单个元素,结果是一个向量。索引矩阵中不允许有负索引。NA 和零值是允许的:索引矩阵中包含零的行被忽略,而包含 NA 的行在结果中产生 NA。
推荐阅读
- javascript - 试图让我的删除按钮在我的 Challengebox 组件的同一行/右侧 - React
- clojure - 创建一个宏以返回一个 reify(java 接口),但在 clojure 中提供了带引号的表达式
- fortran - 使用高斯方法求解线性系统返回错误结果
- sql - WHERE 子句中不接受聚合函数
- node.js - 使用 Axios 发送多个 HTTP 请求
- python - Python读取列直到行尾
- barcode - 检查最终字符串中的 ITF 或 Code 128 条码完整性
- c++ - 在斐波那契数列问题中寻找第 N 个数的程序
- java - 如何使用 Java/Spring API 删除 Redis 中的键列表并返回所有键是否删除?
- botframework - [Microsoft Teams bot]聊天频道中不显示通话图标 #1636