【发布时间】:2020-04-24 00:37:58
【问题描述】:
我有一个带有 j 个级别的因子列以及长度为 k 的 j 个向量的数据框。我想用后一个向量中的值填充前一个数据框中的 k 列,条件是因子。
简化示例(三个级别,三个向量,两个值):
df1 <- data.frame("Factor" = rep(c("A", "B", "C"), times = 5))
vecA <- c(1, 2)
vecB <- c(2, 1)
vecC <- c(3, 3)
这是使用嵌套 ifelse 语句的解决方案:
library(tidyverse)
df1 %>%
mutate(V1 = ifelse(Factor == "A", vecA[1],
ifelse(Factor == "B", vecB[1], vecC[1])),
V2 = ifelse(Factor == "A", vecA[2],
ifelse(Factor == "B", vecB[2], vecC[2])))
我想避免嵌套的 ifelse 语句。理想情况下,我还想避免单独改变每一列。
【问题讨论】:
标签: r if-statement dplyr