gpt4 book ai didi

r - 根据列号选择值

转载 作者:行者123 更新时间:2023-12-04 05:46:54 25 4
gpt4 key购买 nike

有一个带有 ID 和列 y1, y2, ...

> dat
id y1 y2 y3 y4 y5
1 1 2 4 2 3 4
2 2 4 1 1 4 4
3 3 2 3 1 3 1
4 4 0 1 2 4 4
5 5 3 3 2 1 4
6 6 4 1 3 1 4
7 7 2 4 4 4 0
8 8 2 5 0 2 5
9 9 2 2 3 3 1
10 10 0 3 4 4 3

有一个包含 ID 和周数子集的示例文件。
> sam
id week
1 2 3
2 4 4
3 6 4
4 7 5
5 8 5

我想分配一个 y值来自 dat根据周数到每个采样的 ID。这是我想要达到的结果:
> res
id y
1 2 1
2 4 4
3 6 1
4 7 0
5 8 5

可以通过一些循环来实现结果,但如果可能的话,我想避免它。
dat的结构和 sam .
dat <- structure(list(id = 1:10,
y1 = c(2, 4, 2, 0, 3, 4, 2, 2, 2, 0),
y2 = c(4, 1, 3, 1, 3, 1, 4, 5, 2, 3),
y3 = c(2, 1, 1, 2, 2, 3, 4, 0, 3, 4),
y4 = c(3, 4, 3, 4, 1, 1, 4, 2, 3, 4),
y5 = c(4, 4, 1, 4, 4, 4, 0, 5, 1, 3)),
.Names = c("id", "y1", "y2", "y3", "y4", "y5"),
row.names = c(NA, -10L),
class = "data.frame")

sam <- structure(list(id = c(2L, 4L, 6L, 7L, 8L),
week = c(3L, 4L, 4L, 5L, 5L)),
.Names = c("id", "week"),
row.names = c(NA, -5L),
class = "data.frame")

最佳答案

data.frame(id = sam[,1], y = dat[cbind(sam[,1],(1+sam[,2]))])

关于r - 根据列号选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com