问题标签 [cbind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4971 浏览

r - 在 R 中使用带有矩阵的 cbind() 时如何保留列标题

假设一个人试图将两个矩阵粘贴在一起,这两个矩阵都使用 list() 和 colnames() 给出了列标签。在 R 中使用 cbind() 对数据按预期工作,但在 cbind() 操作后列标签似乎丢失了(列标签变为 V1、V2 等......)。这将是函数的一部分,并且每个矩阵都是函数的输入,因此被附加的一个或两个矩阵通常包含不同数量的列(但总是相同的行数)。

有没有办法在使用 cbind() 绑定两个矩阵时保留列名,或者是否有另一种方法可以将一个矩阵附加到另一个矩阵以保留列标签?

提前致谢!

0 投票
1 回答
27 浏览

cbind - 附加列后的奇怪输出

cbind将列“分类”到数据框并得到一个新的tdm1, tdm1<- cbind(tdm1, class),这一切都很好

类的内容看起来像这样

然后cbind,我想通过使用来查看类列tdm1[,ncol(tdm1)],不知何故我得到35 Levels: 156 174 205 250 295 324 335 340 343 345 348 349 361 370 375 381 382 428 439 451 455 701 704 705 706 ... 72了整个列的正确值。这就像列值的摘要。我不知道它是从哪里来的。这个额外的信息让我后来的 knn 分类变得很奇怪。我该如何摆脱它?

0 投票
1 回答
904 浏览

r - 组合和附加不同长度的列,按行号,R

我正在处理来自受试者的生化数据,按性别分析结果。我有 19 项生化测试来分析每种性别、两种药物中的每一种(稍后会进行血液学和解剖学测试)。

出于结果可重复性和防止转录错误的原因,我试图将每个测试汇总到一个表中。包含在表输出中,我需要一列用于 Dunnett 事后比较 p 值。因为 Dunnett 检验与对照结果进行比较,所以对于对照和 3 个药物水平,我只能得到 3 个 p 值。但是,我有 4 个均值和 sd 值。

使用 ddply 来获取平均值和 sd 结果(限制了有效数字的数量,我得到了一个如下所示的数据集:

glht在包中使用了对我构建的对象multcomp执行 Dunnett 测试,该对象是通过正常的. 我已经从摘要中提取了 p 值(我已经将它们四舍五入到小数点后三位)。男性和女性的分析是分开运行的,所以我对每种性别都有一组输出。女性结果如下:aovaovglhtANOVA

男性的结果是:

如何将 p 值的列附加到我的原始数据框(Drug1Biochem1),以便女性R 和 MaleR 都在最后一列中,该列的第 1 行和第 5 行为空(即控件没有 p 值) ?

我希望将结果组合输出到 html,它可以插入到 Word 文档中,因此不会发生转录错误。我设置了一个种子值,以便程序的结果是可重现的(当我最终停止调试时)。

总之,我想要一个具有以下格式的数据框(或表格,或任何我可以输出到 html 的内容):

对于每个测试,我希望重现这个确切的表格。每个性别总是有 4 个组,并且永远不会有控制的 p 值,它总是在第 1 行 (F) 和第 5 行 (M) 中进行总结。

0 投票
1 回答
390 浏览

r - 如何将向量重新绑定到不同的列中,将 NA 留在剩余的单元格中

假设我有未指定数量的不同长度的向量,并且我想有效地将​​它们绑定在一起,但需要注意的是它们必须在生成的 data.frame 中占据不同的列。您可以假设向量包含在列表中,但您不能依赖可能在列表中定义的任何组件名称。

下面我介绍了一个随机样本lv输入NA(

注意:您不必使用rbind(),我只是觉得这是引入问题的最清晰的方法。另一种思考方式是我想将cbind()向量放入不同的(从不重叠)行。

0 投票
2 回答
1907 浏览

r - cbind 将数据框强制转换为矩阵

使用 cbind 时遇到问题。在使用 cbind 之前,对象是两个字符向量的 data.frame。

使用 cbind 添加列后,data.frame 对象将类更改为矩阵。我试过 as.vector,将 h 声明为空字符向量等,但无法修复它。感谢您的任何建议和帮助。

0 投票
1 回答
3982 浏览

r - 将另一个日期框架中的列添加到您的数据框架

我有两个数据框。我想将一个数据框中的一列添加到另一个数据框中。我不断收到以下错误消息 Coercing LHS to a list。

所以在下面,我想将数据框“y”中的“日期”列附加到数据框“x”。我试过使用 data.frame(cbind(x,y)) ,但它不返回日期值,而是一个我不知道它来自哪里的随机数。

0 投票
2 回答
237 浏览

r - 不同长度的data.frames的哑rbind

我不需要任何smart rbind , like rbindlist,rbind.fillbind_row其他。

我需要一个笨蛋rbind来简单地绑定两个数据框:

0 投票
1 回答
584 浏览

r - 创建预定义文本的字符向量列,并使用 rbind 或 bind_rows 将其绑定到现有数据帧

再会,

我将为您的出色评论提出两个[可能]非常微不足道的问题。

问题 #1

我有一个相对整洁的 df (dat),暗淡 10299 x 563。两个数据集 [创建的] dat共有的 563 个变量是“主题”(数字)、“标签”(数字)、3:563(来自文本文件)。观察 1:2947 来自“测试”数据集,而观察 2948:10299 来自“训练”数据集。

我想在 dat 中插入一列(header = 'type'),它基本上是由字符串测试组成的第 1:2947 行和字符串训练的第 2948:10299 行,这样我以后可以在数据集或其他类似的聚合函数中分组dplyr/tidyr。

我创建了一个测试 df (testdf = 1:10299: dim(testdf) = 102499 x 1) 然后:

所以我真的不喜欢现在有一列X1.10299。

问题:

  • 根据上面的用例,是否有更好、更方便的方法来创建包含我正在寻找的内容的列?
  • 什么是将该列实际插入“dat”以便我以后可以使用它与 dplyr 进行分组的好方法?

问题 #2

我从上面到达我的 [几乎] 整洁的 df (dat) 的方式是分别取两个形式为 dim(2947 x 563 和 7352 x 563) 的 dfs (test 和 train),然后将它们绑定在一起。

我通过以下方式确认我的所有变量名在绑定工作之后都存在:

有趣且主要关注的是,如果我尝试使用“dplyr”中的bind_rows函数来执行相同的绑定练习:

它返回一个数据框,显然保留了我所有的观察结果(x:10299),但现在我的变量计数从 563 减少到 470!

问题:

  • 有谁知道为什么我的变量被砍掉了?
  • 这是将两个相同结构的 dfs 结合起来以便以后使用 dplyr/ 进行切片/切块的最佳方法吗?

整理?

感谢您抽出时间考虑这些问题。

样本测试/训练 dfs 以供审查(最左边的数字是 df 指数):

测试 df 测试[1:10, 1:5]

train df train[1:10, 1:5]

实际代码(忽略函数调用/我正在通过控制台进行大部分测试)。

[ http://archive.ics.uci.edu/ml/machine-learning-databases/00240/ ]我在这段代码中使用的数据集。1

0 投票
1 回答
866 浏览

r - 根据向量名称识别和绑定多个向量

我的工作区中有 100 个名为 sim1 到 sim100 的数字向量,长度都相同 (18)。我正在尝试找到一种方法来识别它们并将它们 cbind 以创建一个 18 行和 100 列的数据框。我可以轻松地创建一个长度为 100 的字符向量,其中包含向量的名称:

..但我坚持如何创建对象本身的列表,我认为我可以将其与 do.call 一起使用。请问有什么建议吗?

0 投票
1 回答
188 浏览

r - Combining columns of a table based on age range

I have a table in R that looks like (below is just a sample):

The rows are income levels, and the columns are age levels. I am essentially creating this table to see if age is related to income via a Chi-squared test. The numbers in the table are numbers of occurrences e.g. There are 2 people aged 17 in my dataset with income of 10000.

Both age and income level of type "num" in R so are continuous.

I want to essentially combine the columns for age so that I get a table with everyone who has income of 10k and is between age 15-25, age 25-35, etc. so I end up with much fewer columns.

Note also that colnames(tbl) = "15","17", "18", not "Age" - I haven't defined an overarching name for my columns and rows.

I note this answer does something similar but not sure how to apply it given I don't have a name for my columns e.g. "mpg" (in the case of the link).

Any ideas?