r - 通过使用行和列的索引向量从数据框中提取值?
问题描述
我正在寻找一种更好的方法,通过对行和列使用索引向量来从数据框中提取值。下面的示例工作正常,但我想有更有效的方法使用某种 sapply 或 purr::map 技巧?
df <- data.frame(a = c("a1","a2", "a3", "a4"), b= c("b1","b2", "b3", "b4"), stringsAsFactors = F)
col_selector <- sample(as.integer(c(1,2)), size = 10, replace = T)
row_selector <- sample(as.integer(c(1:4)), size = 10, replace = T)
v = character()
for (i in seq_along(col_selector)) {
v = c(v, df[row_selector[i], col_selector[i]])
}
print(v)
[1] "a4" "a3" "a4" "a2" "a3" "a1" "b1" "b1" "b3" "b1"
解决方案
我个人认为@akrun的答案是最优雅的方法。这是另一个基本 R 解决方案,使用mapply
v <- mapply(function(x,y) df[x,y], row_selector,col_selector)
推荐阅读
- c++ - 函数中的静态数据何时销毁
- css - 如何将 css 框架类分配给裸 HTML 元素?
- c++ - openni2中骨骼关节的数据集提取
- android - 如何在 Android 中(以编程方式)发现我的应用程序的 CPU 使用率?
- javascript - 关于开发 n 对 n webRTC 聊天的建议
- java - 如何将文本从一个控制器的标签发送和应用到另一个控制器的标签?
- laravel - 如何使用 Laravel IMAP 接收邮箱?
- r - 在 ggplot2 中为 geom_label 设置“基本大小”,以便最小值仍然可读
- reactjs - 如何在 tsx 中将道具传递给孩子?
- python - 如何将图像(ndarray 对象)转换为图像对象,以便对其进行 JSON 序列化?