通常不建议按行添加数据,因为每列都有不同的类,添加数据行可能会弄乱它们。
如果您想为每一行添加相同的值,要回答您的问题,您可以这样做:
df <- tibble(x = 1:3, y = 3:1)
df[nrow(df) + 1, ] <- 10
这将在 tibble 中添加一个新行,所有值都为 10。
如果您想添加不同的值而不需要手动编写它们,您可以使用rep 重复某些值n 次数。
要重复 'blabla' 和 'blubblub' 5 次,您可以将向量创建为
rep(c('blabla', 'blubblub'), each = 5)
#[1] "blabla" "blabla" "blabla" "blabla" "blabla"
#[6] "blubblub" "blubblub" "blubblub" "blubblub" "blubblub"
重复'blabla' 5 次和'blubblub' 4 次你可以这样做:
rep(c('blabla', 'blubblub'), c(5, 4))
#[1] "blabla" "blabla" "blabla" "blabla" "blabla" "blubblub"
#[7] "blubblub" "blubblub" "blubblub"
因此,使用rep,您可以创建所需的向量并创建列名与原始数据相同的单行数据框。请注意,向量只能包含一种类型的数据,因此如果您将数字和字符混合在一起,它们会将数字转换为字符。要获得正确的类,您可以在创建一个行数据框后使用type.convert。
df <- tibble(x = 1:3, y = 3:1, z = 'a')
other_data <- setNames(data.frame(t(c(rep(10, 2), 'b'))), names(df))
other_data <- type.convert(other_data, as.is = TRUE)
result <- rbind(df, other_data)