使用dplyr和tidyr库中的group_by和mutate函数,以及ifelse语句。
示例代码如下:
library(dplyr)
library(tidyr)
# 创建示例数据集
df <- data.frame(category = c("A", "A", "B", "B", "C", "C"),
value = c(2, 3, 4, 5, 6, 7))
# 按类别分组,并为每个组分别创建新变量
df <- df %>%
group_by(category) %>%
mutate(new_value = ifelse(category == "A", value*2,
ifelse(category == "B", value+10,
ifelse(category == "C", value^2, NA))))
# 查看结果
df
在上述代码中,我们首先创建了一个包含类别和值的示例数据集。然后,使用group_by函数将数据集按类别分组,使我们可以对每个组使用单独的方程式来计算新变量。使用mutate函数并配合ifelse语句在每个组中创建一个新变量,根据类别使用不同的方程式。最后,我们查看了新的数据集,其中包含新变量"new_value"。