【发布时间】:2021-01-07 14:59:40
【问题描述】:
有没有办法将新列添加到 data.frame 并用 NA 填充它们(由稍后的函数填充),其中新列的标题来自字符向量(字符串)。
示例:
我想做的是根据这个data.frame的主题列添加一些新列
exam_results <- data.frame(
subject = c("maths", "economics", "chemistry"),
final_score = c(70, 78, 61),
midterm_score = c(53, 66,40)
)
即:
# new object for new df
exam_results_new_columns <- exam_results
# get the names of the different subjects
subjects <- unique(exam_results$subject)
column_names <- c()
for (i in 1:length(subjects)) {
column_names[i] <- paste0("subject_", subjects[i])
exam_results_new_columns$i <- NA
}
这将产生以下df:
| subject | final_score | midterm_score | i |
|---|---|---|---|
| maths | 70 | 53 | NA |
| economics | 78 | 66 | NA |
| chemistry | 61 | 40 | NA |
但我想要的是:
| subject | final_score | midterm_score | subject_economics | subject_chemistry |
|---|---|---|---|---|
| maths | 70 | 53 | NA | NA |
| economics | 78 | 66 | NA | NA |
| chemistry | 61 | 40 | NA | NA |
有什么方法可以实现吗?
【问题讨论】:
-
试试
exam_results_new_columns[[column_names[i]]] <- NA