【发布时间】:2017-12-20 21:43:07
【问题描述】:
我正在处理一个数据集,并希望对一些变量进行一些描述性统计,并将它们放在一个数据框中。 我可以处理这样的情况:
dt<-data.frame('X1'=rnorm(10),
'X2'=rnorm(10))
temp<-do.call(rbind, lapply(dt, summary))
还有这样的情况:
dt<-data.frame('X1'=rnorm(10),
'X2'=rnorm(10))
dt[1,2]<-NA
dt[2,1]<-NA
temp<-do.call(rbind, lapply(dt, summary))
但是遇到下面这样的情况,我就不行了:
dt<-data.frame('X1'=rnorm(10),
'X2'=rnorm(10))
dt[1,2]<-NA
temp<-do.call(rbind, lapply(dt, summary))
当某些变量包含 NA 而某些不包含时,不同变量的 lapply 的结果将具有不同的列:
> lapply(dt, summary)
$X1
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.7821000 -0.2881000 -0.0003675 0.3195000 0.8114000 2.0230000
$X2
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-1.336000 -0.604000 -0.005283 0.008491 0.784300 1.407000 1
在这种情况下,rbind 将不再起作用。我确实意识到rbnd.fill 可以在数据帧具有不同列时进行行绑定,但将每个变量的结果传输到数据帧然后通过rbind.fill 将它们组合起来会有点乏味,我相信有给定 R 拥有的权力的一种命令解决方案。
希望有人可以帮助我,您的时间和知识将不胜感激!
【问题讨论】: