簡體   English   中英

將值作為新行添加到數據框中,但保留所有其他列 NA

[英]Add a value as a new row to a dataframe but keep all other columns NA

這是我的示例數據集:

mydata = data.frame (ID =c(1,2,3,4,5),
subject = c("His","Geo","Geo","His","Geo"),
age = c(21,24,26,23,26))

我想在頂部添加一行。 我希望它在 ID 列中顯示“學校 1”,而所有其他列保持空白。 以下是我正在尋找的內容:

mydata = data.frame (ID =c("School 1",1,2,3,4,5),
subject = c(NA,"His","Geo","Geo","His","Geo"),
age = c(NA,21,24,26,23,26))

我嘗試了以下方法,但最終會在所有列中填充值:

mydata <- rbind(c("School 1"), mydata)

我知道下面的代碼會讓我得到我想要的,但我想避免列出 NA,因為我的數據集有很多列

mydata <- rbind(c("School 1", NA,NA), mydata)

任何幫助表示贊賞!

基於dplyr的可能解決方案。 我們首先需要將IDnumeric轉換為character

library(dplyr)

mydata %>% 
  mutate(ID = as.character(ID)) %>% 
  bind_rows(list(ID = "School 1"), .)

#> # A tibble: 6 × 3
#>   ID       subject   age
#>   <chr>    <chr>   <dbl>
#> 1 School 1 <NA>       NA
#> 2 1        His        21
#> 3 2        Geo        24
#> 4 3        Geo        26
#> 5 4        His        23
#> 6 5        Geo        26

您可以rbind兩個數據幀。

tmp <- setNames(data.frame('School 1', NA, NA), names(mydata))

rbind(tmp, mydata)
#         ID subject age
# 1 School 1    <NA>  NA
# 2        1     His  21
# 3        2     Geo  24
# 4        3     Geo  26
# 5        4     His  23
# 6        5     Geo  26

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM