R 如何使用另一个变量作为索引来创建变量?
我希望创建一个新的变量d,它从变量C的基础上获取a或b的值R 如何使用另一个变量作为索引来创建变量?,r,R,我希望创建一个新的变量d,它从变量C的基础上获取a或b的值 dat = data.frame(a=1:10,b=11:20,c=rep(1:2,5)) 结果将是: d = c(1,12,3,14,... etc) 我们可以使用row/column索引,其中row索引是行的序列,column索引是'c'列,cbind它们并基于此从数据集中提取元素 dat$d <- dat[1:2][cbind(seq_len(nrow(dat)), dat$c)] dat$d #[1] 1 12 3
dat = data.frame(a=1:10,b=11:20,c=rep(1:2,5))
结果将是:
d = c(1,12,3,14,... etc)
我们可以使用
row/column
索引,其中row索引是行的序列,column索引是'c'列,cbind
它们并基于此从数据集中提取元素
dat$d <- dat[1:2][cbind(seq_len(nrow(dat)), dat$c)]
dat$d
#[1] 1 12 3 14 5 16 7 18 9 20
dat$d你可以
dat$d <- ifelse(dat$c==1,dat$a,dat$b)
dat$dAdplyr
variant
dat %>%
mutate(d = case_when(c==1 ~ a,
TRUE ~ b))
非常感谢。虽然这对示例有效,但它是我问题的简化版本。akrun的解决方案可以推广到我的案例(20多列)。