可以利用R中的for循环和subset()函数以及rename()函数来解决这个问题。
示例数据:
df <- data.frame(ID = c(1,2,3,4,5), YesNo = c("Yes","No","Yes","No","Yes"), Score = c(75, 80, 90, 85, 95))
for (i in c("Yes", "No")) { df_sub <- subset(df, YesNo == i) assign(paste0("df_", i), df_sub) }
运行这段代码后,将得到两个新的数据框 df_Yes 和 df_No,它们分别包含原数据框 df 中符合 Yes 和 No 条件的行。
library(dplyr) df_Yes <- df_Yes %>% rename("ID_Yes" = ID, "Score_Yes" = Score)
df_No <- df_No %>% rename("ID_No" = ID, "Score_No" = Score)
上述代码使用了dplyr包中的rename()函数,将原来的ID列和Score列重命名为 ID_Yes、Score_Yes 和 ID_No、Score_No。
最终,我们得到了两个新的数据框 df_Yes 和 df_No,它们包含原数据框 df 中符合 Yes 和 No 条件的行,并且重命名了列标题。
上一篇:编写R函数