让我们看下面的数据帧:
> df<-data.frame(1:3,4:6,7:9)
> df
X1.3 X4.6 X7.9
1 1 4 7
2 2 5 8
3 3 6 9
我想在包含NA的数据帧的开头添加四行。因此,使用rbind()
很容易做到。只是
df<-rbind(NA,df)
但是有什么办法可以使我一次完成四次吗?或者我必须使用上述命令四次才能获得以下结果:
> df
X1.3 X4.6 X7.9
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 NA NA NA
5 1 4 7
6 2 5 8
7 3 6 9
答案 0 :(得分:4)
您可以在行子设置中使用rep
。
rbind(df[rep(NA, 4),], df)
# X1.3 X4.6 X7.9
#NA NA NA NA
#NA.1 NA NA NA
#NA.2 NA NA NA
#NA.3 NA NA NA
#1 1 4 7
#2 2 5 8
#3 3 6 9
答案 1 :(得分:4)
类似于GKi的解决方案,但没有git init
git remote add origin https://github.com/Vitosh/VBA_personal.git
git fetch --all
git checkout develop
:
rbind()
答案 2 :(得分:3)
如果您不介意在底部放置 NA 行:
df[ nrow(df) + 1:4, ] <- NA
# X1.3 X4.6 X7.9
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
# 4 NA NA NA
# 5 NA NA NA
# 6 NA NA NA
# 7 NA NA NA
或者,要固定NA的顺序,不存在的子集行并重新排序(但我不喜欢这些行名):
df <- df[ c(nrow(df) + 1:4, seq(nrow(df))), ]
df
# X1.3 X4.6 X7.9
# NA NA NA NA
# NA.1 NA NA NA
# NA.2 NA NA NA
# NA.3 NA NA NA
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
答案 3 :(得分:2)
也许有一个功能,但是您可以使用单线循环:
for(i in 1:4){df <- rbind(NA,df)}
答案 4 :(得分:2)
John
如果要重置行名:
> rbind(matrix(rep(NA, 9), ncol = 3, dimnames = list(1:3, names(df))), df)
X1.3 X4.6 X7.9
1 NA NA NA
2 NA NA NA
3 NA NA NA
11 1 4 7
21 2 5 8
31 3 6 9