gpt4 book ai didi

r - 向缺少值的数据框添加行

转载 作者:行者123 更新时间:2023-12-04 05:24:13 25 4
gpt4 key购买 nike

所以我有这个数据框

df <- data.frame( A=1:10, B=LETTERS[1:10], C=letters[1:10], stringsAsFactors= F )

我想向此数据框添加一行,行号为A = 11和C =“K”,但我没有列C的信息。事实上,我不知道先验列中还有哪些其他列数据帧(A和B除外)。这些丢失的列应获得NA。我能想到的最好的办法是:
tmp <- rep( NA, ncol( df ) ) # Batman!
df <- rbind( df, tmp )
df[ nrow( df ), "A" ] <- 11
df[ nrow( df ), "B" ] <- "K"

有没有更简单的方法?

最佳答案

基本版本:

new.row <- list(A=11, B="K")
df[nrow(df) + 1, names(new.row)] <- new.row
plyr版本:
library(plyr)
new.row <- data.frame(A=11, B="K", stringsAsFactors=F)
df <- rbind.fill(df, new.row)

两者都会产生:
    A B    C
1 1 A a
2 2 B b
3 3 C c
4 4 D d
5 5 E e
6 6 F f
7 7 G g
8 8 H h
9 9 I i
10 10 J j
11 11 K <NA>

您还可以将基本版本推广到更多行:
more.rows <- data.frame(A=15:20, B=letters[15:20], stringsAsFactors=F)
df[(nrow(df) + 1):(nrow(df) + nrow(more.rows)), names(more.rows)] <- more.rows

生产:
    A B    C
1 1 A a
2 2 B b
3 3 C c
4 4 D d
5 5 E e
6 6 F f
7 7 G g
8 8 H h
9 9 I i
10 10 J j
11 11 K <NA>
12 15 o <NA>
13 16 p <NA>
14 17 q <NA>
15 18 r <NA>
16 19 s <NA>
17 20 t <NA>

关于r - 向缺少值的数据框添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com