R 在新数据帧中插入NAs和数据
我有这样一个R 在新数据帧中插入NAs和数据,r,dataframe,na,R,Dataframe,Na,我有这样一个df: X1 X2 X3 X4 Number 4 4 4 4 Number.1 2 3 3 2 我想把它转换成这样: > X1 NA 4 2 NA 4 3 NA 4 3 NA 4 2 NA 如何使用示例中的df插入NA? 到目前为止,我尝试了sapply(df,function(x)NA,t(Number(y)),但它检索到一个错误。。。我
df
:
X1 X2 X3 X4
Number 4 4 4 4
Number.1 2 3 3 2
我想把它转换成这样:
> X1
NA
4
2
NA
4
3
NA
4
3
NA
4
2
NA
如何使用示例中的df
插入NA
?
到目前为止,我尝试了sapply(df,function(x)NA,t(Number(y))
,但它检索到一个错误。。。我知道我必须使用t()
来转置我的df
,但是如何在列与行之间添加NA
有什么建议吗
注意:我对
R
并不陌生,但最近我遇到了一些问题。。。我搜索了StackOverflow的所有地方,但没有找到答案。这里有一个想法,通过stack
对数据帧进行加密,并使用ind
和我们的组指示器添加额外的行,即
s_df <- stack(df)
rbind(data.frame(values = NA, ind = NA), do.call(rbind, by(s_df, s_df$ind, rbind, NA)))[1]
免责声明信用进入您可以使用rbind(NA,dat)
和取消列出
使用use.name=FALSE
-感谢@zx8754
data.frame(X1 = c(unlist(rbind(NA, dat), use.name = FALSE), NA))
结果
# X1
#1 NA
#2 4
#3 2
#4 NA
#5 4
#6 3
#7 NA
#8 4
#9 3
#10 NA
#11 4
#12 2
#13 NA
c(…,NA)
在向量末尾追加NA
数据
dat <- structure(list(X1 = c(4L, 2L), X2 = c(4L, 3L), X3 = c(4L, 3L),
X4 = c(4L, 2L)), .Names = c("X1", "X2", "X3", "X4"), class = "data.frame", row.names = c("Number",
"Number.1"))
dat选择超出范围的行将创建NA
行,然后unlist
:
data.frame(X1 = c(NA, unlist(dat[1:3, ], use.names = FALSE)))
# X1
# 1 NA
# 2 4
# 3 2
# 4 NA
# 5 4
# 6 3
# 7 NA
# 8 4
# 9 3
# 10 NA
# 11 4
# 12 2
# 13 NA
或者unlist(…,use.name=FALSE)
而不是unname()
。
data.frame(X1 = c(NA, unlist(dat[1:3, ], use.names = FALSE)))
# X1
# 1 NA
# 2 4
# 3 2
# 4 NA
# 5 4
# 6 3
# 7 NA
# 8 4
# 9 3
# 10 NA
# 11 4
# 12 2
# 13 NA