我有以下数据框:
df <- data.frame(
x = rep(letters[1:3], 2)
)
Run Code Online (Sandbox Code Playgroud)
以下向量:
vec <- c(1.5, 3.2)
Run Code Online (Sandbox Code Playgroud)
该载体属于每个b在df.vec如果匹配则如何变异b并返回NA值?
预期结果:
1 a NA
2 b 1.5
3 c NA
4 a NA
5 b 3.2
6 c NA
Run Code Online (Sandbox Code Playgroud)
最简单的方法是获取"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
Run Code Online (Sandbox Code Playgroud)
另一种选择是 replace
df$output <- replace(df$output, df$x == "b", vec)
Run Code Online (Sandbox Code Playgroud)
有力地,适应这一点 tidyverse
library(dplyr)
df$output <- NA
df %>%
mutate(output = replace(output, x == "b", vec))
Run Code Online (Sandbox Code Playgroud)