Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何添加几个NA';s作为数据帧的行?_R_Dataframe_Na - Fatal编程技术网

R 如何添加几个NA';s作为数据帧的行?

R 如何添加几个NA';s作为数据帧的行?,r,dataframe,na,R,Dataframe,Na,让我们以下面的数据帧为例: > 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 但是有没有办法让我一次做四次呢?或者我必须使用上述命令四次才能得到以下结果: > df X1.3 X4.6 X7.9 1 NA NA NA 2 NA NA NA 3 NA NA NA 4 NA

让我们以下面的数据帧为例:

> 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
但是有没有办法让我一次做四次呢?或者我必须使用上述命令四次才能得到以下结果:

> 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

也许有这样一个函数,但您可以使用一个线性循环:

for(i in 1:4){df <- rbind(NA,df)}
(1:4中的i){df 如果要重置行名称:

df <- rbind(matrix(rep(NA, 9), ncol = 3, dimnames = list(1:3, names(df))), df)
row.names(df) <- NULL
df
  X1.3 X4.6 X7.9
1   NA   NA   NA
2   NA   NA   NA
3   NA   NA   NA
4    1    4    7
5    2    5    8
6    3    6    9
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

df您可以在行子集设置中使用
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
如果您不介意底部有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

df[nrow(df)+1:4,]类似于GKi的解决方案,但没有
rbind()


整洁但低效。
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
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
df[c(rep(NA, 4L), seq_len(nrow(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