我有以下数据框:
df <- data.frame(
x = rep(letters[1:3], 2)
)
和下面的向量:
vec <- c(1.5, 3.2)
这个向量属于df
中的每一个b
。如果 vec
与 b
匹配,我如何对其进行变异,如果不匹配,如何返回 NA
值?
预期结果:
1 a NA
2 b 1.5
3 c NA
4 a NA
5 b 3.2
6 c NA
最佳答案
最简单的方法是获取“b”的索引并将其替换为 vec
。
df$output[df$x == "b"] <- vec
df
# x output
#1 a NA
#2 b 1.5
#3 c NA
#4 a NA
#5 b 3.2
#6 c NA
另一个选项是 replace
df$output <- replace(df$output, df$x == "b", vec)
强行将其放入 tidyverse
library(dplyr)
df$output <- NA
df %>%
mutate(output = replace(output, x == "b", vec))
关于r - 条件变异和向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52270990/