如何在DataFrame顶部添加指定ID值的行且其余列设为NA
解决方法
方法一:基于原数据结构生成空行
先创建一个和原数据集结构完全一致的空行,再给ID列赋值,最后合并到原数据顶部:
# 生成与原数据结构匹配的空行(所有列初始为NA) new_row <- mydata[0, ] # 为ID列设置指定值 new_row$ID <- "School 1" # 将新行合并到原数据集开头 mydata <- rbind(new_row, mydata)
方法二:用dplyr包的add_row函数(更简洁)
如果习惯用tidyverse工具链,add_row可以直接指定要赋值的列,其他列自动填充NA,还能通过.before参数指定插入位置:
library(dplyr) mydata <- mydata %>% add_row(ID = "School 1", .before = 1)
补充说明
你之前用rbind(c("School 1"), mydata)出现填充所有列的问题,是因为c()会把元素强制转为同一类型(这里变成字符型),而用和原数据同结构的行进行合并,就能保留各列原本的数据类型,同时自动填充NA到未赋值的列。
内容的提问来源于stack exchange,提问作者T K
相关产品推荐
相关产品推荐

