作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我正在寻找 rbind.fill
的类似物(在 Hadley 的 plyr
包中)对于 cbind
。我看了,没有cbind.fill
.
我想做的是:
#set these just for this example
one_option <- TRUE
diff_option <- TRUE
return_df <- data.frame()
if (one_option) {
#do a bunch of calculations, produce a data.frame, for simplicity the following small_df
small_df <- data.frame(a=1, b=2)
return_df <- cbind(return_df,small_df)
}
if (diff_option) {
#do a bunch of calculations, produce a data.frame, for simplicity the following small2_df
small2_df <- data.frame(l="hi there", m=44)
return_df <- cbind(return_df,small2_df)
}
return_df
可以理解,这会产生错误:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 0, 1
我当前的修复是替换行 return_df <- data.frame()
与 return_df <- data.frame(dummy=1)
然后代码就可以工作了。然后我从 return_df
中删除虚拟对象在最后。添加虚拟对象并运行上面的代码后,我得到
dummy a b l m
1 1 1 2 hi there 44
然后我只需要摆脱假人,例如:
> return_df[,2:ncol(return_df)]
a b l m
1 1 2 hi there 44
我确信我缺少一种更简单的方法来做到这一点。
编辑:我想我不是在寻找 cbind.fill,因为这意味着将在 cbind 之后创建 NA 值,这不是我想要的。
最佳答案
这是一个 cbind 填充:
cbind.fill <- function(...){
nm <- list(...)
nm <- lapply(nm, as.matrix)
n <- max(sapply(nm, nrow))
do.call(cbind, lapply(nm, function (x)
rbind(x, matrix(, n-nrow(x), ncol(x)))))
}
让我们尝试一下:
x<-matrix(1:10,5,2)
y<-matrix(1:16, 4,4)
z<-matrix(1:12, 2,6)
cbind.fill(x,y)
cbind.fill(x,y,z)
cbind.fill(mtcars, mtcars[1:10,])
我想我从某个地方偷了这个。
从这里编辑偷窃:LINK
关于r - cbind 一个带有空数据框的数据框 - cbind.fill?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962267/
我有一个名为 FeedView 的 View ,由 FeedViewController 处理。 我还有一个名为“NearestStore”的 XIB,它由一个名为“NearestStoreViewC
我有一个警报表,其中 tr 元素是使用 JS 动态添加/删除的。问题是它有一个 border-top 将它与上面的内容分开,当表格为空时我想隐藏这些内容。我试过 :empty 和 display:no
我是一名优秀的程序员,十分优秀!