我有以下两个数据框:
letters <- LETTERS[seq(from = 1, to = 5)]
values <- rnorm(5, mean = 50)
df1 <- data.frame(letters, values)
category <- sample(LETTERS[1:5], 20, replace = TRUE)
numbers <- rnorm(20, mean = 100)
df2 <- data.frame(category, numbers)
我想在df2
中创建一个新列,其中包含df2$numbers
中的值,并根据匹配的字母减去df1$values
中的值。
换句话说,如果&#34; C&#34;在df1
中,我想从df2$numbers
中的每一行减去49.2,其中df$category
等于&#34; C&#34;。希望有道理。谢谢您的帮助!
答案 0 :(得分:1)
使用dplyr
:
df <- full_join(df1, df2, by = c('letters' = 'category')) %>%
mutate(diff = numbers - values)